HTTP協議

HTTP協議概述

  • HTTP協議用於定義客戶端與web服務器通迅的格式。
  • HTTP是hypertext transfer protocol(超文本傳輸協議)的簡寫,它是TCP/IP協議的一個應用層協議
  • HTTP使用請求-響應的方式進行傳輸,一個請求對應一個響應,而且請求只能是由客戶端發起的。
  • HTTP協議的版本:HTTP/1.0、HTTP/1.1,其中1.0一次請求發起一次鏈接,響應事後鏈接自動斷開。1.1裏每次請求響應後鏈接將保持一段時間,這段時間內能夠再執行請求響應。

HTTP請求

  • 請求行
    GET /books/java.html HTTP/1.1
    請求方式 請求的資源名 所遵循的協議
  • 請求方式:GET、POST,
    其中GET方式在請求資源的URL後跟「?參數名=參數值&參數名=。。。」方式傳遞參數,傳輸的數據內容最大爲1K
    其中POST方式在請求實體中傳輸數據
    除了用Form表單明確用method指定用post方式提交數據之外,其餘的方式都是GET提交方式
  • 請求頭
    Accept: text/html,image/* 客戶端能夠接受的數據類型
    Accept-Charset: ISO-8859-1 客戶端接受數據須要使用的字符集編碼
    Accept-Encoding: gzip,compress 客戶端能夠接受的數據壓縮格式
    Accept-Language: en-us,zh-cn 可接受的語言環境
    Host: www.it315.org:80 想要訪問的虛擬主機名
    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 這是和緩存相關的一個頭,帶着緩存資源的最後獲取時間
    Referer: http://www.it315.org/index.jsp 這個頭表示當前的請求來自哪一個連接,這個頭和防盜鏈的功能相關
    User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 客戶端的一些基本信息
    Cookie:cookie
    Connection: close/Keep-Alive 指定是否繼續保持鏈接
    Date: Tue, 11 Jul 2000 18:23:51 GMT 當前時間
  • 實體內容html

    HTTP響應

  • 狀態行
    HTTP/1.1 200 OK
    格式: HTTP版本號 狀態碼 緣由敘述
    狀態碼:
    200:請求處理成功 302:請求重定向 30四、307:服務器通知瀏覽器使用緩存 404:資源未找到 500:服務器端錯誤
    java

  • 若干響應頭
    Location: http://www.it315.org/index.jsp 配合302實現請求重定向
    Server:apache tomcat 服務器的基本信息
    Content-Encoding: gzip 服務器發送數據時使用的壓縮格式
    Content-Length: 80 發送數據的大小
    Content-Language: zh-cn 發送的數據使用的語言環境
    Content-Type: text/html; charset=GB2312 當前所發送的數據的基本信息,(數據的類型,所使用的編碼)
    Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT 緩存相關的頭
    Refresh: 1;url=http://www.it315.org通知瀏覽器進行定時刷新,此值能夠是一個數字指定多長時間之後刷新當前頁面,這個數字以後也能夠接一個分號後跟一個URL地址指定多長時間後刷新到哪一個URL
    Content-Disposition: attachment;filename=aaa.zip 與下載相關的頭
    Transfer-Encoding: chunked 傳輸類型,若是是此值是一個chunked說明當前的數據是一塊一塊傳輸的
    Set-Cookie:SS=Q0=5Lb_nQ; path=/search 和cookie相關的頭
    ETag: W/"83794-1208174400000" 和緩存機制相關的頭
    Expires: -1 指定資源緩存的時間,若是取值爲0或-1瀏覽就不緩存資源
    Cache-Control: no-cache 緩存相關的頭,若是爲no-cache則通知瀏覽器不緩存
    Pragma: no-cache 緩存相關的頭,若是爲no-cache則不緩存
    以上三個頭都是用來控制緩存的,是由於歷史緣由形成的,不一樣的瀏覽器認識不一樣的頭,咱們一般三個一塊兒使用保證通用性。
    Connection: close/Keep-Alive 是否保持鏈接
    Date: Tue, 11 Jul 2000 18:23:51 GMT 當前時間web

  • 實體內容apache

相關文章
相關標籤/搜索