深入淺出了解HTTP協議

2021-09-29 18:38:49 字數 2393 閱讀 1039

1. http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。

一次http請求的基本流程一般是,在建立tcp連線後,由客戶端向服務端發起一次請求(request),而伺服器在接收到以後返回給客戶端乙個響應(response)。

所以我們看到的http請求內容一般就分為請求和響應兩部分。

http協議通常承載於tcp協議之上,有時也承載於tls或ssl協議層之上,這個時候,就成了我們常說的https。

預設http的埠號為80。

http是乙個無狀態的協議。

2. 無狀態協議

比如客戶端訪問一次網頁之後關閉瀏覽器,然後再一次啟動瀏覽器,再訪問該**,伺服器是不知道客戶關閉了一次瀏覽器的。

3. http請求

每乙個http請求都由三部分組成,分別是:請求行、請求報頭、請求正文。

4. http響應

http響應同樣也是由狀態行、響應報頭、報文主體三部分組成。

5. http請求方法

序號方法描述1

get請求指定的頁面資訊,並返回實體主體。

2head

類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭

3post

向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。post請求可能會導致新的資源的建立和/或已有資源的修改。

4put

從客戶端向伺服器傳送的資料取代指定的文件的內容。

5delete

請求伺服器刪除指定的頁面。

6connect

http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。

7options

允許客戶端檢視伺服器的效能。

8trace

回顯伺服器收到的請求,主要用於測試或診斷。

雖然http請求中定義的方法有這麼多種,但是我們平常使用的基本只有getpost兩種方法,而且大部分**都是禁用掉了除getpost外其他的方法。

因為其他幾種方法通過get或者post都能實現,而且對於**來說更加的安全和可控。

6. 狀態碼(status code)

http的狀態碼是由三位數字來表示的,由第一位數字來表示狀態碼的型別,一般來說有五種型別:

分類分類描述

1**資訊,伺服器收到請求,需要請求者繼續執行操作

2**成功,操作被成功接收並處理

3**重定向,需要進一步的操作以完成請求

4**客戶端錯誤,請求包含語法錯誤或無法完成請求

5**伺服器錯誤,伺服器在處理請求的過程中發生了錯誤

7. cookie

指某些**為了辨別使用者身份、進行 session 跟蹤而儲存在使用者本地終端上的資料(通常經過加密)

cookie其實就是由伺服器發給客戶端的特殊資訊,而這些資訊以文字檔案的方式存放在客戶端,然後客戶端每次向伺服器傳送請求的時候都會帶上這些特殊的資訊。 伺服器在接收到cookie以後,會驗證cookie的資訊,以此來辨別使用者的身份。

cookie可以理解為乙個臨時通行證。

8. 作用

cookie其實是http請求頭的擴充套件部分,由於http協議是無狀態的協議,所以為了在網頁上實現登陸之類的需求,所以擴充套件了cookie這樣的功能。

每一次http請求在資料交換完畢之後就會關閉連線,所以下一次http請求就無法讓服務端得知你和上一次請求的關係。而使用了cookie之後,你在第一次登陸之類的請求成功之後,伺服器會在response的頭資訊中給你返回cookie資訊,你下一次訪問的時候帶上這個cookie資訊,則伺服器就能識別你為上一次成功登陸的使用者。

9. session

session的目的則是,在乙個客戶從開啟瀏覽器到關閉瀏覽器這個期間內,發起的所有請求都可以被識別為同乙個使用者。而實現的方式則是,在乙個客戶開啟瀏覽器開始訪問**的時候,會生成乙個sessionid,這個id每次的訪問都會帶上,而伺服器會識別這個sessionid並且將與這個sessionid有關的資料儲存在伺服器上。由此來實現客戶端的狀態識別。

session與cookie相反,session是儲存在伺服器上的資料,只由客戶端傳上來的sessionid來進行判定,所以相對於cookie,session的安全性更高。

一般sessionid會在瀏覽器被關閉時丟棄,或者伺服器會驗證session的活躍程度,例如30分鐘某乙個sessionid都沒有活躍,那麼也會被識別為失效。

深入淺出http協議 學習筆記

參考資料 http是一套計算機通過網路進行通訊的規則,目前http協議是1.1,http是一種無狀態的協議 即web瀏覽器與web伺服器不需要建立持久的鏈結,遵循request response模型。http通訊機制 1.建立tcp連線 在http開始工作前,web瀏覽器首先通過網路與web伺服器建...

深入淺出HTTP

我們知道目前很多應用系統中的內容傳輸協議採用的http協議,因此不管你是前端人員 後端人員 運維人員,甚至是管理人員,都需要掌握http知識!該版本只有乙個命令get 沒有header等描述資料的資訊 伺服器傳送完畢,就關閉tcp連線。該版本增加了很多命令 增加status code 和header...

深入淺出 HTTP協議請求方法

技術交流 qq群599020441 紀年科技aming get 請求指定的頁面資訊,並返回實體主體。head 只請求頁面的首部。post 請求伺服器接受所指定的文件作為對所標識的uri的新的從屬實體。put 從客戶端向伺服器傳送的資料取代指定的文件的內容。delete 請求伺服器刪除指定的頁面。op...