HTTP的報文格式解析


一、概述

  http報文是面向文本的,報文中每一個字段都是一些ASCII碼串,各個字段的長度是不確定的。http有兩類報文:請求報文  響應報文

二、請求報文

  一個http請求報文由

  • 請求行(request line)
  • 消息頭部(header)
  • 空行
  • 請求正文  

 四部分組成;

  a、請求行

    請求行由請求方法字段、URL字段和HTTP協議版本字段,組成,它們用空格分隔,例如:GET /index.html  HTTP/1.1

    HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這里介紹最常用的GET和POST方法;

    GET:當client要從server中讀取文檔時,使用GET方法。GET方法要求服務器將URL定位的資源放在響應報文的數據部分,回送給client

        使用GET方法時,請求參數和對應的值附加在URL后面,利用一個問號("?")代表URL的結尾與請求參數的開始,傳遞參數長度受限制例如:  /index.jsp?id=100&op=bind

    POST:當client給服務器提供信息較多時, 使用POST方法。POST方法將請求參數封裝在HTTP請求數據中,以key/value的形式出現,可以傳遞大量數據,可用來傳遞文件

  b、消息頭部

    請求頭部由key/value鍵值對組成,每行一對,key和value用冒號":"分隔,請求頭部通知服務器有關於client端的請求信息,典型的請求頭:

      • User-Agent:產生請求的瀏覽器類型
      • Accept:client端可識別的內容類型列表
      • Host:請求的主機名,允許多個域名同處一個ip地址,即虛擬主機    

  c、空行

    最后一個請求頭之后是一個空行,發送回車符和換行符,通知服務器請求頭結束。

    對於一個完整的http請求來說空行是必須的,否則服務器會任務本次請求的數據尚未完全發送到server,處於等待狀態

  d、請求正文

    請求數據不在GET方法中使用,而是在POST中使用。POST方法適用於需要client填寫表單的場合,與請求數據相關的最常用的請求頭是Content-Type 和Content-Length

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM