HTTP協議詳解

2021-07-25 16:36:38 字數 2628 閱讀 3799

http請求由三部分組成,分別是:請求行、請求頭、請求正文

請求行以乙個方法符號開頭,以空格分開,後面跟著請求的uri和協議的版本,格式如下:

其中 method表示請求方法;request-uri是乙個統一資源識別符號;http-version表示請求的http協議版本;crlf表示回車和換行(除了作為結尾的crlf外,不允許出現單獨的cr或lf字元)。

請求方法(所有方法全為大寫)有多種,各個方法的解釋如下:

應用舉例(crlf表示回車鍵):

connection:keep-alive (crlf) //保持連線狀態

cache-control:no-cache (crlf) //快取控制:無快取

(crlf) //該crlf表示訊息報頭已經結束,在此之前為訊息報頭

user=jeffrey&pwd=1234 //此行以下為提交的資料(form表單)get方法和post方法的區別:

主要是資料傳遞

get /test/1.html?name=xiaoxi http/1.1
在接收和解釋請求訊息後,伺服器會返回乙個http響應訊息。

http響應也是由三個部分組成,分別是:響應頭、響應行、響應正文

響應行格式如下:

http-version status-code reason-phrase crlf
其中,http-version表示伺服器http協議的版本;status-code表示伺服器發回的響應狀態**;reason-phrase表示狀態**的文字描述。

響應狀態**有三位數字組成,第乙個數字定義了響應的類別,且有五種可能取值:

2xx:成功–表示請求已被成功接收、理解、接受

3xx:重定向–要完成請求必須進行更進一步的操作。常用302(找別人),304,307(拿快取)

4xx:客戶端錯誤–請求有語法錯誤或請求無法實現

5xx:伺服器端錯誤–伺服器未能實現合法的請求

常見狀態**、狀態描述、說明:

http訊息報頭包括普通報頭、請求報頭、響應報頭、實體報頭。

每乙個報頭域都是由名字+「:」+空格+值 組成,訊息報頭域的名字是大小寫無關的。

在普通報頭中,有少數報頭域用於所有的請求和響應訊息,但並不用於被傳輸的實體,只用於傳輸的訊息。

eg:

response.setheader("cache-control","no-cache");

"pragma","no-cache");

請求報頭允許客戶端向伺服器端傳遞請求的附加資訊以及客戶端自身的資訊。

常用的請求報頭

(crlf)常用的響應報頭

請求和響應訊息都可以傳送乙個實體。乙個實體由實體報頭域和實體正文組成,但並不是說實體報頭域和實體正文要在一起傳送,可以只傳送實體報頭域。實體報頭定義了關於實體正文(eg:有無實體正文)和請求所標識的資源的元資訊。

常用的實體報頭

無狀態是指協議對於事務處理沒有記憶能力,伺服器不知道客戶端是什麼狀態。從另一方面講,開啟乙個伺服器上的網頁和你之前開啟這個伺服器上的網頁之間沒有任何聯絡。

http是乙個無狀態的面向連線的協議,無狀態不代表http不能保持tcp連線,更不能代表http使用的是udp協議(無連線)。

從http/1.1起,預設都開啟了keep-alive,保持連線特性,簡單地說,當乙個網頁開啟完成後,客戶端和伺服器之間用於傳輸http資料的tcp連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線。

keep-alive不會永久保持連線,它有乙個保持時間,可以在不同的伺服器軟體(如apache)中設定這個時間。

http響應頭欄位:

content-range指定了資源的位元組範圍

content-range:1000-3000/5000

即減少瀏覽器向伺服器請求的次數

Http協議詳解 Http請求詳解

http是hypertext transfer protocol 超文字傳輸協議 的簡寫,它是tcp ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程。客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵守一定的通訊格式,http協議用於定義客戶端與w...

Http協議詳解

http協議是乙個基於tcp ip 的協議,使用的是一種請求 響應模型 目前的版本為1。1,但有一些 仍然使用1。0的版本,在待會的實驗中,我們可以看到,網易的主頁163.com仍舊使用的1.0的標準。1 何為請求 響應機制 在這一種機制中,總是客戶端請求伺服器,伺服器接受響應後根據請求端的請求資訊...

HTTP協議詳解

head to inde x.html not supported.invalid method in request head htp 1.1 apache 1.3.12 server at www.fudan.edu.cn port 80 關於實體頭部的內容還可以有 last modified ...