1. 程式人生 > >django學習----http協議

django學習----http協議

pro ascii display 信息 chrome text accep 支持 play

了解http協議的格式

  請求協議:request

      請求首行:包含請求方式(如get、post) url 協議版本

      請求頭:請求信息

      空行:

      請求數據:與網頁內容相關的信息

    get與post的區別:

      在數據上get請求數據不會在請求體中它會放在URL後面,並且數據量有限制

      post沒有數據限制{表單:調整method="post"}

      

      在地址欄直接給出地址的一定是get請求{地址欄請求,表單(默認)}

  

1、Host

請求的web服務器域名地址

2、User-Agent

HTTP客戶端運行的瀏覽器類型的詳細信息。通過該頭部信息,web服務器可以判斷出http請求的客戶端的瀏覽器的類型。

3、Accept

指定客戶端能夠接收的內容類型,內容類型的先後次序表示客戶都接收的先後次序

4、Accept-Lanuage

指定HTTP客戶端瀏覽器用來展示返回信息優先選擇的語言

5、Accept-Encoding

指定客戶端瀏覽器可以支持的web服務器返回內容壓縮編碼類型。表示允許服務器在將輸出內容發送到客戶端以前進行壓縮,以節約帶寬。
而這裏設置的就是客戶端瀏覽器所能夠支持的返回壓縮格式。

6、Accept-Charset

HTTP客戶端瀏覽器可以接受的字符編碼集

7、Content-Type

顯示此HTTP請求提交的內容類型。一般只有post提交時才需要設置該屬性

有關Content-Type屬性值有如下兩種編碼類型:

(1)“application/x-www-form-urlencoded”: 表單數據向服務器提交時所采用的編碼類型,默認的缺省值就是“application/x-www-form-urlencoded”。
     然而,在向服務器發送大量的文本、包含非ASCII字符的文本或二進制數據時這種編碼方式效率很低。

(2)“multipart/form-data”: 在文件上載時,所使用的編碼類型應當是“multipart/form-data”,它既可以發送文本數據,也支持二進制數據上載。

當提交為表單數據時,可以使用“application/x-www-form-urlencoded”;當提交的是文件時,就需要使用“multipart/form-data”編碼類型。

  

技術分享
GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8
get 技術分享
POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley
post

 

技術分享
http協議格式    

     請求協議  (request)
         
         
        
         請求首行 :   方法 url 協議版本     
         請求頭   :   請求信息 
         空行     :             
         請求數據          

          
            GET  url  http 1.1
            Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
            Accept-Encoding:gzip, deflate, br
            Accept-Language:zh-CN,zh;q=0.8
            Cache-Control:max-age=0
            Connection:keep-alive
            Cookie:BAIDUID=88ECF89623BCA604E91B4C2250FE0F69:FG=1; BIDUPSID=88ECF89623BCA604E91B4C2250FE0F69; PSTM=1499646358; BDUSS=VFseTdVbGNEQWxZZFdqb21wZE1PR2ZsSnBTWW5LfnpuU1hJcEI4VGJ4WHdYT0ZaSVFBQUFBJCQAAAAAAAAAAAEAAAD3IxBGbGhmNDU3MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDPuVnwz7lZO; cflag=4%3A3; BD_HOME=1; H_PS_PSSID=1420_13290_21127_20242_24023_20718; BD_UPN=12314353
            Host:www.baidu.com
            Upgrade-Insecure-Requests:1
            User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36           
            
            username="yuan"    pwd=123    


            GET請求常用的操作:
               1. 在瀏覽器的地址欄中直接給出URL,那麽就一定是GET請求
               2. 點擊頁面上的超鏈接也一定是GET請求
               3. 提交表單時,表單默認使用GET請求,但可以設置為POST

     響應協議    (response)
     
     
            響應首行  
            響應頭
            空行
            響應內容
            
            
            
            http 1.1 200 OK
            Bdpagetype:2
            Bdqid:0x9d4742100000b7c6
            Bduserid:1175462903
            Cache-Control:private
            Connection:Keep-Alive
            Content-Encoding:gzip
            Content-Type:text/html;charset=utf-8
            Date:Thu, 19 Oct 2017 01:58:07 GMT
            Expires:Thu, 19 Oct 2017 01:58:06 GMT
            Server:BWS/1.1
            Set-Cookie:BDSVRTM=249; path=/
            Set-Cookie:BD_HOME=1; path=/
            Set-Cookie:H_PS_PSSID=1420_13290_21127_20242_24023_20718; path=/; domain=.baidu.com
            Strict-Transport-Security:max-age=172800
            Transfer-Encoding:chunked
            X-Ua-Compatible:IE=Edge,chrome=1
http協議格式

  首行

  1. Request URL: https://www.baidu.com/
  2. Request Method: GET
  3. Status Code: 200 OK
  4. Remote Address: 111.13.100.91:443
  5. Referrer Policy: no-referrer-when-downgrade

  以下是百度的相關request hedear

    1. Accept:(告訴服務器可以渲染的內容 (q:權重 */*我能渲染所以內容)) text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    2. Accept-Encoding:(支持的壓縮格式) gzip, deflate, br
    3. Accept-Language:(我能支持的語言) zh-CN,zh;q=0.8
    4. Connection:(http版本(1.0(close)/1.1(keep-alive) 區別在於 是否訪問完後立即斷開/)) keep-alive
    5. Cookie:(可以理解為是一個容器,網站給發的隨機鍵值對(理解為身份信息)) BAIDUID=6E4258C5B7906EB4F2CF046D0878752C:FG=1; PSTM=1505553583; BIDUPSID=9F93B6827FE1722F86B831913432D897; BD_UPN=12314753; BD_HOME=0; H_PS_PSSID=1427_21085_20927
    6. Host: www.baidu.com
    7. Upgrade-Insecure-Requests:(升級(與http和https相關)的 參數默認升級) 1
    8. User-Agent:(用戶代理(告訴我是在什麽操作系統上的什麽軟件發送的)) Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36

  響應協議 :response

    

    1. Bdpagetype: 1
    2. Bdqid: 0x8655726500017a00
    3. Bduserid: 0
    4. Cache-Control: private
    5. Connection: Keep-Alive
    6. Content-Encoding: gzip
    7. Content-Type: text/html; charset=utf-8
    8. Cxy_all: baidu+b7ce8850976e75ce963ceab5f0b07995
    9. Date: Thu, 19 Oct 2017 10:34:33 GMT
    10. Expires: Thu, 19 Oct 2017 10:34:16 GMT
    11. Server: BWS/1.1
    12. Set-Cookie: BDSVRTM=0; path=/
    13. Set-Cookie: BD_HOME=0; path=/
    14. Set-Cookie: H_PS_PSSID=1427_21085_20927; path=/; domain=.baidu.com
    15. Strict-Transport-Security: max-age=172800
    16. Transfer-Encoding: chunked
    17. Vary: Accept-Encoding
    18. X-Powered-By: HPHP
    19. X-Ua-Compatible: IE=Edge,chrome=1

django學習----http協議