前端學習(2)

一 HTTP

HTTP(hypertext transport protocol), 超文本傳輸協議。這個協議規定了瀏覽器(客戶端)和萬維網服務器之間的通信規則。

HTTP規定給了瀏覽器和萬維網服務器互相傳輸內容的格式。即請求協議、響應協議。

特點:

  1.HTTP是基於請求/響應模式的;

  2.HTTP是無狀態協議;

注意:

  1. HTTP是沒有記憶能力的,如果需要記錄信息需要適用Cookie或者Session;

  2. HTTP是應用層協議,是無狀態面向連接的協議,但HTTP可以保持連接並且不是UDP協議;

  3. HTTP從1.1版本開啓了Keep-Alive用來保持連接,但是有一定時間的;

二 請求協議

格式:

  請求首行;包括:方式、路徑、協議和版本;

  請求頭信息;包括:頭名稱、頭內容;

  空行;就是用來將上面的信息與下面的請求體分隔開;

  請求體;GET方式沒有請求體,POST有請求體;

  2.1 GET請求

  HTTP默認的請求方式就是GET方式

  特點:

    a. 沒有請求體;

    b. 數據必須在1K之內;

    c.GET請求數據會暴露在瀏覽器的地址欄中,不安全;

  常用GET請求的操作:

    a. 在瀏覽器中的輸入URL訪問服務器,GET方式;

    b.點擊頁面上的超鏈接,GET方式;

    c.在適用form表單向服務器傳輸數據時,表單方法選用GET,則GET方式;

Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK
Remote Address: 39.156.66.14:443
Referrer Policy: no-referrer-when-downgrade

  

GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
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.9
Cookie: BAIDUID=C677D5BFFEE347092A84FB4B9E7BFFB0:FG=1; BIDUPSID=C677D5BFFEE347092A84FB4B9E7BFFB0; PSTM=1544768079; BDUSS=3M2R3VvWkRpY0RVbTVMWVFqNWZBT3RYMktDdGk3YUFCV1laYzYzOWNFfmlYalJkRVFBQUFBJCQAAAAAAAAAAAEAAAAvfAkq0MK1xMbwteNiYWJ5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLRDF3i0Qxdb; BD_UPN=12314753; BD_HOME=1; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; delPer=0; BD_CK_SAM=1; PSINO=1; COOKIE_SESSION=475505_0_9_9_84_79_0_5_9_5_0_10_475521_0_14_0_1585355162_0_1585355148%7C9%23955168_11_1568635343%7C5; BDRCVFR[LqJxTNeWn7_]=mk3SLVN4HKm; H_PS_PSSID=; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; H_PS_645EC=bec2cY%2F%2BQ2LfQ0z4yrHe0ae37sRaat5g3h6T%2FNMIkkqobTzIWo5mG%2BwBv3509KR6J%2BjF47qU

 

  2.2 POST請求

  特點:

    a.數據不會出現在地址欄中;

    b.數據大小沒有上限;

    c.有請求體;

    d.請求體重如果存在中文, 會使用URL編碼;例如:username=%E5%BBC%A0%E4%88%89&password=456

  請求體:

    1. Referer:http://www.badiu.com; 意思就是你從百度的網址跳轉過來的;可以用來防盜,統計等;

    2. Content-type:application/x-www-form-urlencoded:表單的數據類型,使用url格式編碼數據,是讓服務器依照這個編碼格式進行變嗎的,數據以“%”爲前綴,後面跟着兩個十六進制數;

    3. Content-Length:13, 請求體的長度13個字節;

    4.keyword=damon: 請求體的內容, damon是表單中輸入的數據,keyword是表單字段的名字;

三 響應協議

  格式:

    1. 響應首行;

    2. 響應頭信息;

    3. 空行; 

    4. 響應體;

  響應體內容是服務器發送給瀏覽器的內容,瀏覽器會根據內容進行渲染和顯示。其中如果遇到<imp>標籤,會再啓動一個線程用來加載圖片,所以經常會出現頁面顯示了但是圖片還沒有加載。

HTTP/1.1 200 OK  版本號:HTTP/1.1, 狀態碼:200 請求成功
Bdpagetype: 2  
Bdqid: 0x96246a0f000f4322
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8 響應使用的編碼UTF-8
Date: Sat, 28 Mar 2020 03:21:11 GMT 響應的時間
Expires: Sat, 28 Mar 2020 03:21:10 GMT
Server: BWS/1.1 服務器的版本信息
Set-Cookie: BDSVRTM=393; path=/ 響應客戶端的Cookie
Set-Cookie: BD_HOME=1; path=/ 響應客戶端的Cookie
Set-Cookie: H_PS_PSSID=1451_31120_21089_30825_30910_30824_31085; path=/; domain=.baidu.com 響應客戶端的Cookie
Strict-Transport-Security: max-age=172800
Traceid: 1585365671275440513010818888817508827938
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked

  以上內容通過網頁,點擊F12->Network->點擊Name是百度網址->點擊Headers,查看到的請求協議和響應協議內容。

  狀態碼:

    1. 200: 請求成功;

    2. 404: 請求的資源不存在;

    3. 500: 請求的資源存在,但服務器出現錯誤;

    4. 302: 服務器要求瀏覽器從新發個請求,服務器會發送一個location的響應頭,用來指定新請求的URL地址;

    5. 304: 用來緩存的時候使用;

  HTML中指定響應頭:

    <meta http:equiv="" content="">用來指定響應頭。

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