34.HTTP

問答

1.OSI 七層模型指什么

七層模型,也就是OSI(Open System Interconnection),即開放式系統互聯通信模型
它是國際標準化組織(ISO)制定的一個用于計算機或通信系統間互聯的標準體系,一般稱為OSI參考模型或七層模型。
它是一個七層的、抽象的模型,不僅包括一系列抽象的概念,也包括具體的協議
從低到高:物理層 -> 數據鏈路層 -> 網絡層 -> 傳輸層 -> 會話層 -> 表示層 -> 應用層

Paste_Image.png

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

HTTP協議采用請求/響應模型,即客戶端向服務器發送一個請求報文,服務器以一個狀態作為響應。
工作原理:
①客戶端連接到web服務器
一個HTTP客戶端,通常是瀏覽器,與web服務器的HTTP端口(默認為80)建立一個TCP套接字連接。
②客戶端向服務器發起HTTP請求
通過已建立的TCP 連接,客戶端向服務器發送一個請求報文;一個請求報文由請求行、請求頭部、空行和請求數據4部分組成。
③服務器接受請求并返回HTTP響應
Web服務器解析請求,定位請求資源。服務器將資源副本寫到TCP套接字,由客戶端讀取。一個響應由狀態行、響應頭部、空行和響應數據4部分組成。
④服務器斷開TCP 連接
Web服務器主動關閉TCP套接字,斷開TCP連接;客戶端被動關閉TCP套接字,斷開TCP連接。

一般情況下,一旦web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,然后如果瀏覽器或者服務器在其頭信息加入了這行代碼Connection:keep-alive,TCP連接發送后將仍然保持打開狀態,于是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需要的時間,還節約了網絡帶寬。
⑤客戶端瀏覽器解析HTML內容
客戶端瀏覽器先解析狀態行,查看表明請求是否是成功的狀態代碼。然后解析每一個響應頭,響應頭告知一下為若干字節的HTML文檔和文檔的字符集。客戶端瀏覽器讀取響應數據HTML,根據HTML的語法對其進行格式化,并在瀏覽器窗口中顯示。
參考文章

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

Paste_Image.png

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

4.HTTP 協議有幾種和服務器交互的方法

根據HTTP標準,HTTP請求可以使用多種請求方法,來以不同方式操作指定資源。
①GET:向服務器請求資源。
GET方法用來請求訪問已被URI識別的資源。指定的資源經服務器解析后,返回響應的內容。
②POST: 向服務器發送數據,返回服務器端接收數據后傳回的結果
③HEAD:該方法和GET類似,但是服務器的響應中沒有資源的內容,只有資源的一些基本信息,主要用于在不獲取資源的情況下獲取資源的信息(類型、大小等)。通過狀態碼查看資源是否存在,通過查看首部,可以測試資源是否被修改了。
④PUT:發送并且改寫服務器端內容,請求會將文件的內容保存到指定的URI中,一般來說,服務器為安全起見,不會使用該方法。
⑤DELETE:用于要求服務器刪除請求的URL,服務器基本上不會支持這個功能。
⑥CONNECT:要求用隧道協議連接代理,隧道可按要求建立起一條與其他服務器的通信線路,并使用一些加密方式,讓客戶端與服務器進行安全的通信
⑦OPTIONS: 允許客戶端查看服務器的功能
⑧TRACE:客戶端發送一個請求的時候,這個請求可能會穿過防火墻、代理、網管和一些其他的應用程序,每個中間節點都可能修改HTTP請求,TRACE方法允許客戶端在最終請求發往服務器的時候,看看它變成了什么樣子。

5. 狀態碼200,301, 304,403,404,500,503分別代表什么意思

2xx (成功):表示成功處理了請求
200:OK,服務器收到請求,并正常返回用戶所要求的資源
3xx (重定向):表示要完成請求,需要進一步操作
301:Moved Prmanently,資源永久重定向,表示請求的資源已被分配了新的URI,瀏覽器會自動連接到新的URL。比如訪問mp3.baidu.com會跳轉到music.baidu.com。區分與302的差異,302是臨時重定向
304:自從上次請求后,請求的網頁未修改過,從本地緩存中讀取。
4xx(請求錯誤):這些狀態代碼表示請求可能出錯,妨礙了服務器的處理
403:forbidden,表示請求被服務器拒絕,客戶端可能不具備訪問該資源的權限信息。
404:客戶端輸入有誤或者資源已被刪除,找不到資源,當服務器拒絕用戶訪問時,也可能出現404。
5xx(服務器錯誤) :這些狀態代碼表示服務器在嘗試處理請求時發生內部錯誤。 這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
500:Internal Server Error,服務器錯誤,表示可能服務器在執行請求時發生了錯誤。
503:Service Unavailable,服務器處于超負荷或者正在進行停機維護的狀態,無法處理請求。

6. 報文有哪幾部分組成

用于HTTP協議交互的信息被稱為HTTP報文;
HTTP報文是簡單的格式化數據塊,數據塊以文本形式的元信息開頭,描述報文的內容及含義,后面跟著可選的數據部分;
每個報文都包含一條來自客戶端的請求或者一條來自服務器的響應。
報文是由3部分組成:
①對報文進行描述的起始行 —— start line
②包含屬性的首部塊 —— header
③可選的包含數據的主體部分 —— body

報文都可以分為兩類:請求報文(request message)和響應報文(response message)。請求報文會向 Web 服務器請求一個動作。響應報文會將請求的結果返回客戶端。請求與響應報文的基本報文結構相同。

請求報文詳圖如下:

Paste_Image.png

響應報文詳解如下:
Paste_Image.png

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

Paste_Image.png

格式:鍵值對;
作用:
Accept:告訴web服務器自己接受什么介質類型.
Accept-Encoding:瀏覽器聲明自己接收的編碼方法,通常指定壓縮方法,是否支持壓縮,支持什么壓縮方法。
Accept-Language:瀏覽器聲明自己接收的語言。
Cache-control:瀏覽器的緩存方法,no-cache(不要緩存的實體,要求現在從web服務器去取),max-age(只接受age值小于max-age值,并且沒有過期的對象)。
Connection:告訴web服務器或者代理服務器,在完成本次請求的響應后,斷開連接,不要等待本次連接的后續請求了。keep-alive(連續保持著,在等待本次連接的后續請求),close(請求已關閉)。
Cookie:客戶端傳遞的字符串,可能和一些登陸信息有關。
Host:客戶端指定自己想訪問的WEB服務器的域名/IP地址和端口號。
User-Agent: 瀏覽器表明自己的身份(是哪種瀏覽器)。
Referer : 提供了包含當前請求URI的文檔的URL,告訴服務器自己來源。

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

Paste_Image.png

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

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

主體就是客戶端發給服務器或者服務器發給客戶端的主要內容,服務器發給客戶端的用于向用戶呈現的相應信息,而客戶端發給服務器的主要用于向服務器傳送除協議相關以外的信息。

Paste_Image.png

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

緩存機制1
緩存機制2
緩存機制3
緩存行為主要由緩存策略決定,而緩存策略由內容擁有者設置。這些策略主要通過特定的HTTP頭部來清晰地表達。
當一個用戶發起一個靜態資源請求的時候,瀏覽器會通過以下幾步來獲取資源:

  • 本地緩存階段:先在本地查找該資源,如果有發現該資源,而且該資源還沒有過期,就使用這一個資源,完全不會發送http請求到服務器;
  • 協商緩存階段:如果在本地緩存找到對應的資源,但是不知道該資源是否過期或者已經過期,則發一個http請求到服務器,然后服務器判斷這個請求,如果請求的資源在服務器上沒有改動過,則返回304,讓瀏覽器使用本地找到的那個資源;
  • 緩存失敗階段:當服務器發現請求的資源已經修改過,或者這是一個新的請求(在本來沒有找到資源),服務器則返回該資源的數據,并且返回200, 當然這個是指找到資源的情況下,如果服務器上沒有這個資源,則返回404。


    Paste_Image.png

11.下圖各個參數是什么意思

Paste_Image.png

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

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

request headers(請求首部)
accept:客戶端能處理的響應內容格式,這里是所有格式
Accept-Encoding:客戶端能處理的響應內容編碼格式
Accept-Language:客戶端能處理的語言種類和優先級,默認權重值q為1,這里優先考慮zh-CN
connection:keep-alive 請求的連接狀態為保持鏈路連接
content-length:56 請求體內容長度(字節),這里為56個字節
Content-Type:請求體的內容格式
cookie:緩存信息
Host:表示服務器的域名以及服務器所監聽的端口號。如果所請求的端口是對應的服務的標準端口(80),則端口號可以省略。
Origin:告知服務器請求的源地址。
Referer:告知服務器請求的原始資源的URI。
User-Agent:客戶端使用的操作系統和瀏覽器的名稱和版本。
X-Requsted-With:xmlhttprequest 表示使用的是Ajax異步請求。
Form Data:向服務器提交的表單數據。

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


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容