9月23日 http服務(wù) 1

1口渔、套接字

在建立通信連接的每一端落午,進程間的傳輸要有兩個標志:
IP地址和端口號,合稱為套接字地址socket address 蜕便,套接字文件定義了ip地址和端口號,用于不同進程間通信使用贩幻。比如mysql服務(wù)器端的進程和客戶端的進程進行通訊轿腺。
客戶機套接字地址定義了一個唯一的客戶進程
服務(wù)器套接字地址定義了一個唯一的服務(wù)器進程

  • Socket:套接字,進程間通信IPC的一種實現(xiàn)丛楚,允許位于不同主機(或同一主機)上不同進程之間進行通信和數(shù)據(jù)交換族壳。
  • Socket Domain:根據(jù)其所使用的地址
    AF_INET:Address Family,IPv4
    AF_INET6:IPv6
    AF_UNIX:同一主機上不同進程之間通信時使用
  • 套接字相關(guān)的系統(tǒng)調(diào)用:
    socket(): 創(chuàng)建一個套接字
    bind():綁定IP和端口
    listen():監(jiān)聽
    accept():接收請求
    connect():請求連接建立
    write():發(fā)送
    read():接收
    close():關(guān)閉連接

2趣些、HTTP通信過程

http: Hyper Text Transfer Protocol, 80/tcp仿荆,超文本傳輸協(xié)議。
html: Hyper Text Markup Language 超文本標記語言,編程語言拢操,是http協(xié)議傳輸?shù)囊环N文件格式锦亦。


Paste_Image.png
Paste_Image.png

MIME:Multipurpose Internet Mail Extensions
多用途互聯(lián)網(wǎng)郵件擴展 /etc/mime.types
格式:major/minor
text/plain
text/html ---也就是傳輸?shù)奈募牟煌袷?br> text/css
image/jpeg
image/png
video/mp4
application/javascript
參考:http://www.w3school.com.cn/media/media_mimeref.asp

3、Web資源:web resource

一個網(wǎng)頁由多個資源構(gòu)成令境,打開一個頁面杠园,會有多個資源展示出來,但是每個資源都要單獨請求舔庶。因此抛蚁,一個“Web 頁面”通常并不是單個資源,而是一組資源的集合
靜態(tài)文件:無需服務(wù)端做出額外處理
文件后綴:.jpg, .html, .txt, .js, .css, .mp3, .avi
動態(tài)文件:服務(wù)端執(zhí)行程序惕橙,返回執(zhí)行的結(jié)果
文件后綴:.asp, .php, .jsp

4瞧甩、URI

URI: Uniform Resource Identifier 統(tǒng)一資源標識,分為URL和URN
URN: Uniform Resource Naming弥鹦,統(tǒng)一資源命名
示例:P2P下載使用的磁力鏈接是URN的一種實現(xiàn)
magnet:?xt=urn:btih:660557A6890EF888666
URL: Uniform Resorce Locator亲配,統(tǒng)一資源定位符,用于描述某服務(wù)器某特定資源位置
兩者區(qū)別:URN如同一個人的名稱惶凝,而URL代表一個人的住址吼虎。換言之,URN定義某事物的身份苍鲜,而URL提供查找該事物的方法思灰。URN僅用于命名,而不指定地址
URL組成
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
schame:方案混滔,訪問服務(wù)器以獲取資源時要使用哪種協(xié)議
user:用戶洒疚,某些方案訪問資源時需要的用戶名
password:密碼,用戶對應(yīng)的密碼坯屿,中間用:分隔
Host:主機油湖,資源宿主服務(wù)器的主機名或IP地址
port:端口,資源宿主服務(wù)器正在監(jiān)聽的端口號,很多方案有默認端口號
path:路徑,服務(wù)器資源的本地名领跛,由一個/將其與前面的URL組件分隔
params:參數(shù)乏德,指定輸入的參數(shù),多個參數(shù)吠昭,用;分隔
query:查詢喊括,傳遞參數(shù)給程序,如數(shù)據(jù)庫矢棚,用郑什?分隔,多個查詢用&分隔
frag:片段,一小片或一部分資源的名字,此組件在客戶端使用蒲肋,用#分隔蘑拯,可以在當前頁進行跳轉(zhuǎn)钝满,跳轉(zhuǎn)至當前網(wǎng)頁的特定行,比如當前頁面篇幅比較長時申窘,可以跳轉(zhuǎn)到當前頁面的指定位置弯蚜。

5、網(wǎng)站訪問量

IP(獨立IP):記錄遠程客戶機IP地址的計算機訪問網(wǎng)站的次數(shù)偶洋,是衡量網(wǎng)站流量的重要指標,一天內(nèi)來自相同客戶機IP地址只計算一次距糖。
PV(訪問量):即Page View, 頁面瀏覽量或點擊量玄窝,用戶每次刷新即被計算一次,PV反映的是瀏覽某網(wǎng)站的頁面數(shù)悍引,PV與來訪者的數(shù)量成正比恩脂,PV并不是頁面的來訪者數(shù)量,而是網(wǎng)站被訪問的頁面數(shù)量
UV(獨立訪客):即Unique Visitor趣斤,訪問某網(wǎng)站的電腦的數(shù)量俩块。網(wǎng)站判斷來訪電腦的身份是通過來訪電腦的cookies實現(xiàn)的。如果更換了IP后但不清除cookies浓领,再訪問相同網(wǎng)站玉凯,該網(wǎng)站的統(tǒng)計中UV數(shù)是不變的。
網(wǎng)站統(tǒng)計:http://www.alexa.cn/rank/

6联贩、一次完整的http請求處理過程

1漫仆、建立連接:接收或拒絕連接請求,即三次握手的過程泪幌。
2盲厌、接收請求:接收客戶端請求報文中對某資源的一次請求的過程
Web訪問響應(yīng)模型(Web I/O)
單進程I/O模型:啟動一個進程處理用戶請求,而且一次只處理一個祸泪,多個請求被串行響應(yīng)
多進程I/O模型:并行啟動多個進程,每個進程響應(yīng)一個連接請求
復(fù)用I/O結(jié)構(gòu):啟動一個進程吗浩,同時響應(yīng)N個連接請求
實現(xiàn)方法:多線程模型和事件驅(qū)動
多線程模型:一個進程生成N個線程,每線程響應(yīng)一個連接請求
事件驅(qū)動:一個進程處理N個請求
復(fù)用的多進程I/O模型:啟動M個進程没隘,每一個進程開多個線程懂扼,每個線程響應(yīng)多個連接請求
3、處理請求:服務(wù)器對請求報文進行解析右蒲,并獲取客戶端請求的資源及請求的方法等相關(guān)信息微王,根據(jù)方法,資源品嚣,首部和可選的主體部分對請求進行處理
HTTP常用請求方式Method:GET炕倘、POST、HEAD翰撑、PUT罩旋、DELETE啊央、TRACE、OPTIONS
4涨醋、訪問資源:負責(zé)向請求者提供對方請求的靜態(tài)資源瓜饥,或動態(tài)運行后生成的資源,用戶將指令發(fā)送給內(nèi)核浴骂,內(nèi)核到磁盤上去調(diào)取客戶端要訪問的資源數(shù)據(jù)到內(nèi)核空間乓土,再將資源發(fā)送到用戶的內(nèi)存空間。
5溯警、構(gòu)建響應(yīng)報文:一旦Web服務(wù)器識別從出了資源趣苏,就執(zhí)行請求方法中描述的動作,封裝http的頭部信息的響應(yīng)報文梯轻,并返回響應(yīng)報文食磕。響應(yīng)報文中包含有響應(yīng)狀態(tài)碼、響應(yīng)首部喳挑,如果生成了響應(yīng)主體的話彬伦,還包括響應(yīng)主體。
1)響應(yīng)實體:如果事務(wù)處理產(chǎn)生了響應(yīng)主體伊诵,就將內(nèi)容放在響應(yīng)報文中回送過去单绑。響應(yīng)報文中通常包括:
描述了響應(yīng)主體MIME類型的Content-Type首部
描述了響應(yīng)主體長度的Content-Length
實際報文的主體內(nèi)容

此命令可以查看響應(yīng)報文的頭部信息
[root@centos6 network-scripts]#curl -I www.qq.com
HTTP/1.1 200 OK
Server: squid/3.5.20
Content-Type: text/html; charset=GB2312
Cache-Control: max-age=60
Expires: Tue, 26 Sep 2017 12:34:04 GMT
Date: Tue, 26 Sep 2017 12:33:04 GMT
Connection: keep-alive

2)URL重定向:web服務(wù)構(gòu)建的響應(yīng)并非客戶端請求的資源,而是資源另外一個訪問路徑
永久重定向:http://www.360buy.com ---用戶訪問這個網(wǎng)站的時候會跳轉(zhuǎn)到https://www.jd.com/這個網(wǎng)站曹宴。
臨時重定向:http://www.taobao.com
6询张、發(fā)送響應(yīng)報文
7、記錄日志
最后浙炼,當事務(wù)結(jié)束時份氧,Web服務(wù)器會在日志文件中添加一個條目,來描述已執(zhí)行的事務(wù)

7弯屈、Httpd特性和MPM工作模式

  • 高度模塊化:core + modules
  • DSO: Dynamic Shared Object 動態(tài)加/卸載
  • MPM:multi-processing module多路處理模塊
    這些特性和內(nèi)核很相似蜗帜。
  • MPM工作模式
    ①prefork:多進程I/O模型,每個進程響應(yīng)一個請求资厉,默認模型
    一個主進程:生成和回收n個子進程厅缺,創(chuàng)建套接字,不響應(yīng)請求
    多個子進程:工作work進程宴偿,每個子進程處理一個請求湘捎;系統(tǒng)初始時,預(yù)先生成多個空閑進程窄刘,等待請求窥妇,最大不超過1024個
    ②worker:復(fù)用的多進程I/O模型,多進程多線程,IIS使用此模型
    一個主進程:生成m個子進程娩践,每個子進程負責(zé)生個n個線程活翩,每個線程響應(yīng)一個請求烹骨,并發(fā)響應(yīng)請求:m*n
    ③event:事件驅(qū)動模型(worker模型的變種)
    一個主進程:生成m個子進程,每個進程生成n個線程來響應(yīng)n個請求材泄,有專門的服務(wù)線程來管理這些keep-alive類型的線程沮焕,當有真實請求時,將請求傳遞給服務(wù)線程拉宗,執(zhí)行完畢后峦树,又允許釋放。這樣增強了高并發(fā)場景下的請求處理能力
    httpd-2.2: event測試版旦事,centos6
    httpd-2.4:event穩(wěn)定版魁巩,centos7
Paste_Image.png
Paste_Image.png
Paste_Image.png

8、httpd的功能特性

虛擬主機
IP族檬、Port歪赢、FQDN
一個物理服務(wù)器上可以額搭建多個web網(wǎng)站化戳。
CGI:Common Gateway Interface单料,通用網(wǎng)關(guān)接口
網(wǎng)關(guān)用來解決不同網(wǎng)段、不同協(xié)議之間的通信点楼。
反向代理
假如有好幾個服務(wù)器提供相同的web服務(wù)扫尖,并且網(wǎng)站信息都是一樣的,反向代理服務(wù)器的作用相當于一個調(diào)度器掠廓,將用戶發(fā)送的請求轉(zhuǎn)發(fā)給相應(yīng)的服務(wù)器换怖。
正向代理
比如用戶要訪問一個網(wǎng)站,它先把請求發(fā)送給正向代理服務(wù)器蟀瞧,然后代理服務(wù)器去替你去訪問這個網(wǎng)站沉颂,并且下載網(wǎng)站的資源,一份發(fā)送給你悦污,一份保存到自己的緩存中铸屉,當有下一個用戶要訪問相同的網(wǎng)頁資源時,因為代理服務(wù)器上已經(jīng)有緩存切端,就直接將資源發(fā)送給用戶彻坛,節(jié)省了帶寬。
負載均衡
路徑別名
豐富的用戶認證機制
basic
digest
支持第三方模塊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末踏枣,一起剝皮案震驚了整個濱河市昌屉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茵瀑,老刑警劉巖间驮,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異马昨,居然都是意外死亡蜻牢,警方通過查閱死者的電腦和手機烤咧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抢呆,“玉大人煮嫌,你說我怎么就攤上這事”埃” “怎么了昌阿?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恳邀。 經(jīng)常有香客問我懦冰,道長,這世上最難降的妖魔是什么谣沸? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任刷钢,我火速辦了婚禮,結(jié)果婚禮上乳附,老公的妹妹穿的比我還像新娘内地。我一直安慰自己,他們只是感情好赋除,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布阱缓。 她就那樣靜靜地躺著,像睡著了一般举农。 火紅的嫁衣襯著肌膚如雪荆针。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天颁糟,我揣著相機與錄音航背,去河邊找鬼。 笑死棱貌,一個胖子當著我的面吹牛玖媚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播键畴,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼最盅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了起惕?” 一聲冷哼從身側(cè)響起涡贱,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惹想,沒想到半個月后问词,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡嘀粱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年激挪,在試婚紗的時候發(fā)現(xiàn)自己被綠了辰狡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡垄分,死狀恐怖宛篇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薄湿,我是刑警寧澤叫倍,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站豺瘤,受9級特大地震影響吆倦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坐求,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一蚕泽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桥嗤,春花似錦须妻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掌逛。三九已至师逸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豆混,已是汗流浹背篓像。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留皿伺,地道東北人员辩。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像鸵鸥,于是被迫代替她去往敵國和親奠滑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 從三月份找實習(xí)到現(xiàn)在妒穴,面了一些公司宋税,掛了不少,但最終還是拿到小米讼油、百度杰赛、阿里、京東矮台、新浪乏屯、CVTE根时、樂視家的研發(fā)崗...
    時芥藍閱讀 42,278評論 11 349
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)辰晕,斷路器蛤迎,智...
    卡卡羅2017閱讀 134,714評論 18 139
  • 1.OkHttp源碼解析(一):OKHttp初階2 OkHttp源碼解析(二):OkHttp連接的"前戲"——HT...
    隔壁老李頭閱讀 20,875評論 24 176
  • 小妹今年十六歲,是高中生含友,看了《武媚娘傳奇》忘苛,說里面的故事都不符合歷史。其實很多古裝劇雖然根據(jù)原型改編唱较,但是真的不...
    90后女秀才閱讀 1,257評論 4 4
  • 歲月流轉(zhuǎn)南缓, 攜一份瀟灑前行胸遇。 心靈在經(jīng)年的磨練中慢慢成熟, 腳步在旅途的風(fēng)雨中變得沉穩(wěn)汉形。 那低吟淺唱的美好纸镊, 訴說...
    南英子閱讀 594評論 23 58