壹個HTTP請求報文由四個部分組成:請求行、請求頭部、空行、請求數據。
1、請求行
請求行由請求方法字段、URL字段和HTTP協議版本字段3個字段組成,它們用空格分隔。
2、請求頭部
HTTP客戶程序(例如瀏覽器),向服務器發送請求的時候必須指明請求類型(壹般是GET或者POST)。如有必要,客戶程序還可以選擇發送其他的請求頭。大多數請求頭並不是必需的,但Content-Length除外。對於POST請求來說Content-Length必須出現。
3、空行
它的作用是通過壹個空行,告訴服務器請求頭部到此為止。
4、請求數據
若方法字段是GET,則此項為空,沒有數據。若方法字段是POST,則通常來說此處放置的就是要提交的數據。
http請求報文的方法
1、GET方法
發送壹個請求來取得服務器上的某壹資源特征:沒有請求體;請求參數附著在URL地址後面;請求參數在瀏覽器地址欄能夠直接被看到,存在安全隱患;在URL地址後面攜帶請求參數,數據容量非常有限。如果數據量大,那麽超出容量的數據會丟失;從報文角度分析,請求參數是在請求行中攜帶的,因為訪問地址在請求行。
2、Post方法
向URL指定的資源提交數據或附加新的數據。
特征:有請求體;請求參數放在請求體中;請求體發送數據的大小沒有限制;可以發送各種不同類型的數據;從報文角度分析,請求參數是在請求體中攜帶;由於請求體參數是放在請求體中,所以瀏覽器地址欄看不到。
3、Put方法
跟Post方法很像,也是向服務器提交數據,但是,Put指向了資源在服務器上的位置,而Post沒有,PUT方法會向服務器寫入(更新)數據。比如:編輯用戶信息的請求,就可以用PUT。
4、Head方法
HEAD方法與GET方法的行為很類似,但服務器在響應中只返回首部,不會返回實體的主體部分,這就允許客戶端在未獲取實際資源的情況下,對資源的首部進行驗證。
5、Delete方法
刪除服務器上的某資源。
6、Options方法
它用於獲取當前URL所支持的方法。如果請求成功,會有壹個Allow的頭包含類似“Get,Post”這樣的信息。
7、Trace方法
Trace方法被用於激發壹個遠程的,應用層的請求消息回路。
8、Connect方法
把請求連接轉換到透明的TCP/IP通道。