概述
什么是協議,協議就像是我們租房或者作業時所簽訂的合同,就是事先說明的一種規范,約定,標準 ,
HTTP協議(HyperText Transfer Protocol):又稱超文本傳輸協議,客戶端(瀏覽器端)與WEB服務器端之間的互動協議,當瀏覽器和服務器進行資料交換時,html檔案、圖片、CSS、JS等都是基于HTTP協議進行互動傳輸的,
HTTP協議目前使用的基本都是1.1版本
(版本詳情見:http協議各版本差異_gcs的博客-CSDN博客_http協議版本)
特點:通常是基于 B/S 結構軟體的; 無連接:瀏覽器向服務器發送一次請求,服務器回應一次,鏈接就結束,這樣可以節省傳輸的時間,現今大多數服務器支持 Keep-Alive 功能,使用服務器支持長連接; 無狀態:協議對于事務的處理是沒有記憶的,服務器不能記住哪個瀏覽器被訪問過,服務器不知道客戶端是什么狀態,即客戶端發送HTTP請求后,服務器根據請求給我們發送資料,發送完畢后并不會紀錄資訊,但使用 cookie 機制可以保持 session ,解決此問題,
1.請求和回應
HTTP協議主要分為兩大部分: 請求: 訪問服務器的任何一個檔案都是一次請求 回應: 服務器處理請求,將結果回傳給瀏覽器,

HTTP請求訊息:由于 HTTP 協議屬于客戶端瀏覽器和服務器之間的通信協議,因此,客戶端發起的請求叫做HTTP 請求,客戶端發送到服務器的訊息,叫做 HTTP請求訊息,又叫HTTP請求報文
請求訊息由請求行、請求頭部、空行和請求體四部分組成,
- 請求行:
由請求方式、URL和HTTP協議版本三部分組成,它們之間用空格隔開,
- 請求頭部(header):
由多行 鍵/值對 組成,每行的鍵和值之間用英文的冒號分隔,用來描述客戶端的基本資訊,從而把客戶端相關的資訊告知服務器,
- 空行:
最后一個請求頭欄位的后面是一個空行,通知服務器請求頭部至此結束,(請求訊息中的空行,用來分隔請求頭部與請求體), - 請求體:
請求體中存放的,是要通過 POST 方式提交到服務器的資料,(注意:只有POST才有請求體,GET沒有)
HTTP回應訊息:回應訊息就是服務器回應給客戶端的訊息內容,也叫作回應報文,
由狀態行、回應頭部、空行和回應體四部分組成,
- 狀態行

- 回應頭部:用來描述服務器的基本資訊,由多行 鍵/值對 組成,每行的鍵和值之間用英文的冒號分隔,
- 空行:回應訊息中的空行,用來分隔回應頭部與回應體,
- 回應體:回應體中存放的,是服務器回應給客戶端的資源內容,
2.HTTP請求方法
屬于 HTTP 協議中的一部分,請求方法的作用是:用來表明要對服務器上的資源執行的操作
3.HTTP回應狀態碼
用來標識回應的狀態,
回應狀態碼會隨著回應訊息一起被發送給客戶端瀏覽器,瀏覽器根據服務器回傳的回應狀態碼,就能知道這次HTTP請求結果是否成功,
狀態代碼由三個十進制數字組成,第一個十進制數字定義了回應的狀態碼的類別,后兩個數字用來對狀態碼進行細分,,共分五種類別:
1xx:指示資訊–表示請求已接收,繼續處理(實際開發很少遇到)
2xx:成功–表示請求已被成功接收、理解、接受并進行處理
- 200 OK 請求成功,一般用于 GET 與 POST 請求
- 201 Created 已創建,成功請求并創建了新的資源,通常用于 POST 或 PUT 請求
3xx:表示服務器要求客戶端重定向–要完成請求必須進行更進一步的操作
- 301 Moved Permanently 永久移動,請求的資源已被永久的移動到新URI,回傳資訊會包括新的URI,瀏覽器會自動定向到新URI,今后任何新的請求都應使用新的URI代替
- 302 Found 臨時移動,與301類似,但資源只是臨時被移動,客戶端繼續使用原有URI
- 304 Not Modified 未修改,所請求的資源未修改,服務器回傳此狀態碼時,不會回傳任何資源(回應訊息中不包含回應體),客戶端通常會快取訪問過的資源
4xx:表示客戶端請求有非法內容,從而導致請求失敗
- 400 Bad Request 1.語意有誤,當前請求無法被服務器理解,除非進行修改,否則客戶端不應該重復提交該請求 2.請求引數有誤
- 401 Unauthorized 當前請求需要用戶驗證
- 403 Forbidden 服務器已經理解請求,但時拒絕執行它
- 404 Not Found 服務器無法根據客戶端的請求找到資源或者網頁
- 408 Request Timeout 請求超時,服務器等待客戶端發送的請求時間過長,超時
5xx:服務器端錯誤–服務器未能實作合法的請求
- 500 Internal Server Error 服務器內部錯誤,無法完成請求
- 501 Not Implemented 服務器不支持該請求方法,無法完成請求,只有GET和HEAD請求方法是要求每個服務器必須支持的,其他請求方法在不支持的服務器上會回傳501
- 503 Service Unavailable 由于超載或系統維護,服務器暫時的無法處理客戶端的請求
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/308714.html
標籤:其他
