Http請求與響應格式

author : 丁家文

Http請求與響應格式

Http 請求的格式

Http請求由 請求行,消息報頭,請求正文 三部分組成。

  • 請求行:以一個方法符號開頭,後面跟着請求URI和協議的版本,以CRLF作爲結尾
    • 條件:請求行以空格分隔。除了作爲結尾的CRLF外,不允許出現單獨的CR或LF字符
    • 格式:Method Request-URI HTTP-Version CRLF
      • Method:表示請求的方法
      • Request-URI:統一資源標識符,標識了要請求的資源
      • HTTP-Version:表示請求的HTTP協議版本
      • CRLF:表示回車換行
    • 請求方法:
      • 最常用:GET、POST
      • 不常用:HEAD、PUT、DELETE、TRACE、OPTIONS、(TRACE)
    • 示例:GET /test.html HTTP/1.1 (CRLF)
  • 消息報頭:包含Accept、User-Agent、Host、Accept-Langeuage、connection、Cookie、Referer、Content-Type、Accept-Charset、Accept-Encoding
    • Accept:瀏覽器或其他客戶可以接愛的MIME文件格式。Servlet可以根據它判斷並返回適當的文件格式
    • User-Agent:是客戶瀏覽器名稱
    • Host:對應網址URL中的Web名稱和端口號
    • Accept-Langeuage:指出瀏覽器可以接受的語言種類,如en或en-us,指英語
    • connection:用來告訴服務器是否可以維持固定的HTTP連接。http是無連接的,HTTP/1.1使用Keep-Alive爲默認值,這樣,當瀏覽器需要多個文件時(比如一個HTML文件和相關的圖形文件),不需要每次都建立連接
    • Cookie:瀏覽器用這個屬性向服務器發送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和服務器相關的用戶信息,也可以用來實現會話功能
    • Referer:表明產生請求的網頁URL。如比從網頁/icconcept/index.jsp中點擊一個鏈接到網頁/icwork/search,在向服務器發送的GET/icwork/search中的請求中,Referer是http://hostname:8080/icconcept/index.jsp。這個屬性可以用來跟蹤Web請求是從什麼網站來的
    • Content-Type:用來表名request的內容類型。可以用HttpServletRequest的getContentType()方法取得(Get請求的消息體是空的,消息體包含在地址裏)
    • Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認值是ISO-8859-1
    • Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同於文件格式,它是爲了壓縮文件並加速文件傳遞速度。瀏覽器在接收到Web響應之後先解碼,然後再檢查文件格式
  • 消息體:請求數據

Http響應的格式

http響應體由三部分組成:狀態行、響應頭、響應正文

  • 狀態行:HTTP-Version+Status-Code+Reason-Phrase

    • HTTP-Version:Http協議版本
    • Status-Code:狀態碼
      • 1xx:指示信息–表示請求已接收,繼續處理
      • 2xx:成功–表示請求已被成功接收、理解、接受
      • 3xx:重定向–要完成請求必須進行更進一步的操作。
      • 4xx:客戶端錯誤–請求有語法錯誤或請求無法實現。
      • 5xx:服務器端錯誤–服務器未能實現合法的請求。
    • Reason-Phrase:狀態代碼的文本描述
    • 示例:HTTP-Version+Status-Code+Reason-Phrase
  • 響應頭:包含服務器類型,日期,長度,內容類型等

    • 示例:
    Server:Apache Tomcat/5.0.12
    Date:Mon,6Oct2003 13:13:33 GMT
    Content-Type:text/html
    Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
    Content-Length:112
    
  • 響應正文:服務器返回的HTML頁面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章