筆記 HTTP協議

2021-08-31 04:00:22 字數 2515 閱讀 4542

我的部落格:楓之羽

應用http協議時,必定是一端擔任客戶角色,另一端擔任服務端角色。

客戶端:請求文字或影象等資源的一端稱為客戶端;

服務端:提供資源響應的一端。

請求報文是由請求方法、請求uri、協議版本、可選的請求首部欄位和內容實體構成的。

響應報文基本上由協議版本、狀態碼(表示請求成功或失敗的數字**)、用以解釋狀態碼的原因短語、可選的響應首部字段以及實體主體構成。

http是一種不儲存狀態,即無狀態(stateless)協議。http協議自身不對請求和響應之間的通訊狀態進行儲存。也就是說在http這個級別,協議對於傳送過的請求或響應都不做持久化處理。

http/1.1雖然是無狀態協議,但為了實現期望的保持狀態功能,於是引入了cookie技術。有了cookie再用http協議通訊,就可以管理狀態了。

http協議使用uri定位網際網路上的資源。正式因為uri的特定功能,在網際網路上任意位置的資源都能訪問到。

​ 當客戶端請求訪問資源而傳送請求時,uri需要將作為請求報文中的請求uri包含在內。指定請求uri的方式有很多。

向請求uri指定的資源傳送請求報文時,採用稱為方法的命令。

方法的作用:**可以指定請求的資源按期望產生某種行為。**方法有get、post和head等。

http協議的初始版本中,每進行一次http通訊就要斷開一次。

使用瀏覽器瀏覽乙個包含多張的html頁面時,在傳送請求訪問html頁面資源的同時,也會請求該html頁面裡包含的其他資源。因此,每次的請求都會造成無謂的tcp鏈結的建立和斷開,增加通訊量的開銷。

為了解決上述tcp連線的問題,http/1.1和一部分http/1.0想出了持久連線(http persistent connections,也稱為http keep-alive或http connection reuse)的方法。

持久連線的特點是:只要任意一端沒有明確提出斷開連線,則保持tcp連線狀態。

持久連線的好處在於減少了tcp連線的重複建立和斷開所造成的額外開銷,減輕了伺服器的負載。另外,減少開銷的那部分時間,使http請求和響應能夠更早結束,這樣web頁面的顯示速度也就相應提高了。

持久連線使得多數請求以管線化(pipelining)方式傳送成為可能。從前傳送請求後需要等待並受到響應,才能傳送下乙個請求。管線化技術出現後,不用等待響應亦可直接傳送下乙個請求。

http協議是無狀態協議,在儲存無狀態協議這個特徵的同時又要解決類似的矛盾為,於是引入了cookie技術。cookie技術通過在請求和響應報文中寫入cookie資訊來控制客戶端的狀態。

​ cookie會根據從伺服器傳送的響應報文內的乙個叫做set-cookie的首部字段資訊,通知客戶端儲存cookie。當下次街護短再往該伺服器傳送請求時,客戶端會自動在請求報文中加入cookie值後傳送出去。

http在傳輸資料時可以按照資料原貌直接傳輸,但也可以在傳輸過程中通過編碼提公升傳輸速率。

**報文:**http通訊中的基本單位,由8位組位元組流組成,通過http通訊傳輸。

**實體:**作為請求或響應的有效載荷資料(補充項)被傳輸,其內容由實體首部和實體主體組成。

http報文的主體用於傳輸請求或響應的實體主體。

通常,報文主體等於實體主體。

狀態碼的職責是當客戶端想伺服器端傳送請求時,描述返回的請求結果。

狀態碼如200 ok,以3位數字和原因短語組成。

數字中的第一位指定了響應類別,後兩位無分類。

http 協議筆記

webservice http協議 xml rest http協議 json 各種api 也一般是用http xml json 來實現的 做採集小偷站,或者學習ajax 也要了解http 協議 計算機中的協議和現實中的協議是一樣的,一式雙份或者多份 雙方都遵循乙個規範,這個規範就可以稱之為協議 ft...

HTTP協議筆記

http協議是基於tcp協議的上層應用協議 特點1無連線 每次連線只處理乙個請求,處理完即斷開連線 特點2無狀態 每次連線需要的資訊都要重傳 restful 一種流行的網際網路軟體設計架構 含義是資源表現層狀態轉化,包括三部分 1.定義直觀簡短的資源位址uri 應當是名詞,動作放到引數裡 2.定義傳...

HTTP協議筆記

http協議是基於tcp協議的上層應用協議 特點1無連線 每次連線只處理乙個請求,處理完即斷開連線 特點2無狀態 每次連線需要的資訊都要重傳 restful 一種流行的網際網路軟體設計架構 含義是資源表現層狀態轉化,包括三部分 1.定義直觀簡短的資源位址uri 應當是名詞,動作放到引數裡 2.定義傳...