34.HTTP

問答

1.OSI 七層模型指什么

七層模型匙奴,也就是OSI(Open System Interconnection)详炬,即開放式系統(tǒng)互聯(lián)通信模型裙品。
它是國際標(biāo)準(zhǔn)化組織(ISO)制定的一個用于計算機(jī)或通信系統(tǒng)間互聯(lián)的標(biāo)準(zhǔn)體系忍宋,一般稱為OSI參考模型或七層模型帝火。
它是一個七層的溜徙、抽象的模型,不僅包括一系列抽象的概念犀填,也包括具體的協(xié)議蠢壹。
從低到高:物理層 -> 數(shù)據(jù)鏈路層 -> 網(wǎng)絡(luò)層 -> 傳輸層 -> 會話層 -> 表示層 -> 應(yīng)用層

Paste_Image.png

2.HTTP 的工作原理是什么?

HTTP協(xié)議采用請求/響應(yīng)模型,即客戶端向服務(wù)器發(fā)送一個請求報文九巡,服務(wù)器以一個狀態(tài)作為響應(yīng)图贸。
工作原理:
①客戶端連接到web服務(wù)器
一個HTTP客戶端,通常是瀏覽器冕广,與web服務(wù)器的HTTP端口(默認(rèn)為80)建立一個TCP套接字連接疏日。
②客戶端向服務(wù)器發(fā)起HTTP請求
通過已建立的TCP 連接,客戶端向服務(wù)器發(fā)送一個請求報文;一個請求報文由請求行撒汉、請求頭部沟优、空行和請求數(shù)據(jù)4部分組成。
③服務(wù)器接受請求并返回HTTP響應(yīng)
Web服務(wù)器解析請求睬辐,定位請求資源挠阁。服務(wù)器將資源副本寫到TCP套接字宾肺,由客戶端讀取。一個響應(yīng)由狀態(tài)行侵俗、響應(yīng)頭部锨用、空行和響應(yīng)數(shù)據(jù)4部分組成。
④服務(wù)器斷開TCP 連接
Web服務(wù)器主動關(guān)閉TCP套接字隘谣,斷開TCP連接增拥;客戶端被動關(guān)閉TCP套接字,斷開TCP連接洪橘。

一般情況下跪者,一旦web服務(wù)器向?yàn)g覽器發(fā)送了請求數(shù)據(jù),它就要關(guān)閉TCP連接熄求,然后如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼Connection:keep-alive,TCP連接發(fā)送后將仍然保持打開狀態(tài)渣玲,于是,瀏覽器可以繼續(xù)通過相同的連接發(fā)送請求弟晚。保持連接節(jié)省了為每個請求建立新連接所需要的時間忘衍,還節(jié)約了網(wǎng)絡(luò)帶寬。
⑤客戶端瀏覽器解析HTML內(nèi)容
客戶端瀏覽器先解析狀態(tài)行卿城,查看表明請求是否是成功的狀態(tài)代碼枚钓。然后解析每一個響應(yīng)頭,響應(yīng)頭告知一下為若干字節(jié)的HTML文檔和文檔的字符集瑟押〔蠼荩客戶端瀏覽器讀取響應(yīng)數(shù)據(jù)HTML,根據(jù)HTML的語法對其進(jìn)行格式化多望,并在瀏覽器窗口中顯示嫩舟。
參考文章

3.URI 的格式是什么?常見的協(xié)議有哪些

Paste_Image.png

常見的協(xié)議:HTTP(HyperText Transfer Protocol 超文本傳輸協(xié)議)怀偷、HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer http的安全版)家厌、FTP(文件傳輸協(xié)議)、mailto(電子郵件協(xié)議)椎工、file(本地文件傳輸協(xié)議)

4.HTTP 協(xié)議有幾種和服務(wù)器交互的方法

根據(jù)HTTP標(biāo)準(zhǔn)饭于,HTTP請求可以使用多種請求方法,來以不同方式操作指定資源维蒙。
①GET:向服務(wù)器請求資源掰吕。
GET方法用來請求訪問已被URI識別的資源。指定的資源經(jīng)服務(wù)器解析后颅痊,返回響應(yīng)的內(nèi)容畴栖。
②POST: 向服務(wù)器發(fā)送數(shù)據(jù),返回服務(wù)器端接收數(shù)據(jù)后傳回的結(jié)果
③HEAD:該方法和GET類似八千,但是服務(wù)器的響應(yīng)中沒有資源的內(nèi)容吗讶,只有資源的一些基本信息燎猛,主要用于在不獲取資源的情況下獲取資源的信息(類型、大小等)照皆。通過狀態(tài)碼查看資源是否存在重绷,通過查看首部,可以測試資源是否被修改了膜毁。
④PUT:發(fā)送并且改寫服務(wù)器端內(nèi)容昭卓,請求會將文件的內(nèi)容保存到指定的URI中,一般來說瘟滨,服務(wù)器為安全起見候醒,不會使用該方法。
⑤DELETE:用于要求服務(wù)器刪除請求的URL杂瘸,服務(wù)器基本上不會支持這個功能倒淫。
⑥CONNECT:要求用隧道協(xié)議連接代理,隧道可按要求建立起一條與其他服務(wù)器的通信線路败玉,并使用一些加密方式敌土,讓客戶端與服務(wù)器進(jìn)行安全的通信
⑦OPTIONS: 允許客戶端查看服務(wù)器的功能
⑧TRACE:客戶端發(fā)送一個請求的時候,這個請求可能會穿過防火墻运翼、代理返干、網(wǎng)管和一些其他的應(yīng)用程序,每個中間節(jié)點(diǎn)都可能修改HTTP請求血淌,TRACE方法允許客戶端在最終請求發(fā)往服務(wù)器的時候矩欠,看看它變成了什么樣子。

5. 狀態(tài)碼200悠夯,301晚顷, 304,403,404,500疗疟,503分別代表什么意思

2xx (成功):表示成功處理了請求
200:OK,服務(wù)器收到請求瞳氓,并正常返回用戶所要求的資源
3xx (重定向):表示要完成請求策彤,需要進(jìn)一步操作
301:Moved Prmanently,資源永久重定向匣摘,表示請求的資源已被分配了新的URI店诗,瀏覽器會自動連接到新的URL。比如訪問mp3.baidu.com會跳轉(zhuǎn)到music.baidu.com音榜。區(qū)分與302的差異庞瘸,302是臨時重定向
304:自從上次請求后,請求的網(wǎng)頁未修改過赠叼,從本地緩存中讀取擦囊。
4xx(請求錯誤):這些狀態(tài)代碼表示請求可能出錯违霞,妨礙了服務(wù)器的處理
403:forbidden,表示請求被服務(wù)器拒絕瞬场,客戶端可能不具備訪問該資源的權(quán)限信息买鸽。
404:客戶端輸入有誤或者資源已被刪除,找不到資源贯被,當(dāng)服務(wù)器拒絕用戶訪問時眼五,也可能出現(xiàn)404。
5xx(服務(wù)器錯誤) :這些狀態(tài)代碼表示服務(wù)器在嘗試處理請求時發(fā)生內(nèi)部錯誤彤灶。 這些錯誤可能是服務(wù)器本身的錯誤看幼,而不是請求出錯。
500:Internal Server Error幌陕,服務(wù)器錯誤诵姜,表示可能服務(wù)器在執(zhí)行請求時發(fā)生了錯誤。
503:Service Unavailable苞轿,服務(wù)器處于超負(fù)荷或者正在進(jìn)行停機(jī)維護(hù)的狀態(tài)茅诱,無法處理請求。

6. 報文有哪幾部分組成

用于HTTP協(xié)議交互的信息被稱為HTTP報文搬卒;
HTTP報文是簡單的格式化數(shù)據(jù)塊瑟俭,數(shù)據(jù)塊以文本形式的元信息開頭,描述報文的內(nèi)容及含義契邀,后面跟著可選的數(shù)據(jù)部分摆寄;
每個報文都包含一條來自客戶端的請求或者一條來自服務(wù)器的響應(yīng)。
報文是由3部分組成:
①對報文進(jìn)行描述的起始行 —— start line
②包含屬性的首部塊 —— header
③可選的包含數(shù)據(jù)的主體部分 —— body

報文都可以分為兩類:請求報文(request message)和響應(yīng)報文(response message)坯门。請求報文會向 Web 服務(wù)器請求一個動作微饥。響應(yīng)報文會將請求的結(jié)果返回客戶端谒臼。請求與響應(yīng)報文的基本報文結(jié)構(gòu)相同民效。

請求報文詳圖如下:

Paste_Image.png

響應(yīng)報文詳解如下:
Paste_Image.png

7.請求頭的格式和作用是什么里初?給個范例截圖說明

Paste_Image.png

格式:鍵值對诵冒;
作用:
Accept:告訴web服務(wù)器自己接受什么介質(zhì)類型.
Accept-Encoding:瀏覽器聲明自己接收的編碼方法续滋,通常指定壓縮方法偷厦,是否支持壓縮霹肝,支持什么壓縮方法申钩。
Accept-Language:瀏覽器聲明自己接收的語言叉袍。
Cache-control:瀏覽器的緩存方法始锚,no-cache(不要緩存的實(shí)體,要求現(xiàn)在從web服務(wù)器去取)喳逛,max-age(只接受age值小于max-age值瞧捌,并且沒有過期的對象)。
Connection:告訴web服務(wù)器或者代理服務(wù)器,在完成本次請求的響應(yīng)后姐呐,斷開連接殿怜,不要等待本次連接的后續(xù)請求了。keep-alive(連續(xù)保持著皮钠,在等待本次連接的后續(xù)請求)稳捆,close(請求已關(guān)閉)。
Cookie:客戶端傳遞的字符串麦轰,可能和一些登陸信息有關(guān)乔夯。
Host:客戶端指定自己想訪問的WEB服務(wù)器的域名/IP地址和端口號。
User-Agent: 瀏覽器表明自己的身份(是哪種瀏覽器)款侵。
Referer : 提供了包含當(dāng)前請求URI的文檔的URL末荐,告訴服務(wù)器自己來源。

8.首部的格式和作用是什么新锈?給個范例截圖說明

Paste_Image.png

格式:鍵值對甲脏;
作用:
Request URL:請求文件的路徑
Request Method : 請求文件的方法
Status Code : 狀態(tài)碼以及狀態(tài)信息
Remote Address:服務(wù)器地址

9.主體的作用是什么?給個范例

主體就是客戶端發(fā)給服務(wù)器或者服務(wù)器發(fā)給客戶端的主要內(nèi)容妹笆,服務(wù)器發(fā)給客戶端的用于向用戶呈現(xiàn)的相應(yīng)信息块请,而客戶端發(fā)給服務(wù)器的主要用于向服務(wù)器傳送除協(xié)議相關(guān)以外的信息。

Paste_Image.png

10.簡述瀏覽器緩存是如何控制的

緩存機(jī)制1
緩存機(jī)制2
緩存機(jī)制3
緩存行為主要由緩存策略決定拳缠,而緩存策略由內(nèi)容擁有者設(shè)置墩新。這些策略主要通過特定的HTTP頭部來清晰地表達(dá)。
當(dāng)一個用戶發(fā)起一個靜態(tài)資源請求的時候窟坐,瀏覽器會通過以下幾步來獲取資源:

  • 本地緩存階段:先在本地查找該資源海渊,如果有發(fā)現(xiàn)該資源,而且該資源還沒有過期哲鸳,就使用這一個資源臣疑,完全不會發(fā)送http請求到服務(wù)器;
  • 協(xié)商緩存階段:如果在本地緩存找到對應(yīng)的資源徙菠,但是不知道該資源是否過期或者已經(jīng)過期讯沈,則發(fā)一個http請求到服務(wù)器,然后服務(wù)器判斷這個請求,如果請求的資源在服務(wù)器上沒有改動過婿奔,則返回304缺狠,讓瀏覽器使用本地找到的那個資源;
  • 緩存失敗階段:當(dāng)服務(wù)器發(fā)現(xiàn)請求的資源已經(jīng)修改過脸秽,或者這是一個新的請求(在本來沒有找到資源),服務(wù)器則返回該資源的數(shù)據(jù)蝴乔,并且返回200记餐, 當(dāng)然這個是指找到資源的情況下,如果服務(wù)器上沒有這個資源薇正,則返回404片酝。


    Paste_Image.png

11.下圖各個參數(shù)是什么意思

Paste_Image.png

General(通用首部)
request URL:請求資源的URL路徑
request method:請求使用的方法
status code:響應(yīng)狀態(tài)碼及描述
emote address:請求的服務(wù)器的IP及端口

response headers(響應(yīng)首部)
connection:keep-alive 響應(yīng)的連接狀態(tài)為保持鏈路連接
Content-Length:12 響應(yīng)內(nèi)容長度(字節(jié))
Content-Type:json 響應(yīng)體的內(nèi)容格式囚衔,這里是json格式
date:該響應(yīng)報文創(chuàng)建的日期和時間(是服務(wù)器時間)
server:服務(wù)器版本信息
x-powered-by:服務(wù)器使用的技術(shù)

request headers(請求首部)
accept:客戶端能處理的響應(yīng)內(nèi)容格式,這里是所有格式
Accept-Encoding:客戶端能處理的響應(yīng)內(nèi)容編碼格式
Accept-Language:客戶端能處理的語言種類和優(yōu)先級,默認(rèn)權(quán)重值q為1雕沿,這里優(yōu)先考慮zh-CN
connection:keep-alive 請求的連接狀態(tài)為保持鏈路連接
content-length:56 請求體內(nèi)容長度(字節(jié))练湿,這里為56個字節(jié)
Content-Type:請求體的內(nèi)容格式
cookie:緩存信息
Host:表示服務(wù)器的域名以及服務(wù)器所監(jiān)聽的端口號。如果所請求的端口是對應(yīng)的服務(wù)的標(biāo)準(zhǔn)端口(80)审轮,則端口號可以省略肥哎。
Origin:告知服務(wù)器請求的源地址。
Referer:告知服務(wù)器請求的原始資源的URI疾渣。
User-Agent:客戶端使用的操作系統(tǒng)和瀏覽器的名稱和版本篡诽。
X-Requsted-With:xmlhttprequest 表示使用的是Ajax異步請求。
Form Data:向服務(wù)器提交的表單數(shù)據(jù)榴捡。

HTTP協(xié)議請求-Kencery-cnblog5
HTTP深入淺出 http請求-尹京昱-cnblog3
URI vs URL


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杈女,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吊圾,更是在濱河造成了極大的恐慌达椰,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件项乒,死亡現(xiàn)場離奇詭異啰劲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)板丽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門呈枉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人埃碱,你說我怎么就攤上這事猖辫。” “怎么了砚殿?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵啃憎,是天一觀的道長。 經(jīng)常有香客問我似炎,道長辛萍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任羡藐,我火速辦了婚禮贩毕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仆嗦。我一直安慰自己辉阶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谆甜,像睡著了一般垃僚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上规辱,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天谆棺,我揣著相機(jī)與錄音,去河邊找鬼罕袋。 笑死改淑,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炫贤。 我是一名探鬼主播溅固,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兰珍!你這毒婦竟也來了侍郭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤掠河,失蹤者是張志新(化名)和其女友劉穎亮元,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唠摹,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爆捞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了勾拉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煮甥。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖藕赞,靈堂內(nèi)的尸體忽然破棺而出成肘,到底是詐尸還是另有隱情,我是刑警寧澤斧蜕,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布双霍,位于F島的核電站,受9級特大地震影響批销,放射性物質(zhì)發(fā)生泄漏洒闸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一均芽、第九天 我趴在偏房一處隱蔽的房頂上張望丘逸。 院中可真熱鬧,春花似錦掀宋、人聲如沸深纲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽囤萤。三九已至,卻和暖如春是趴,著一層夾襖步出監(jiān)牢的瞬間涛舍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工唆途, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留富雅,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓肛搬,卻偏偏與公主長得像没佑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子温赔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

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