HTTP請(qǐng)求

HTTP是 hypertext transfer protocol(超文本傳輸協(xié)議)的簡寫,它是TCP/IP協(xié)議的一個(gè)應(yīng)用層協(xié)議,用于定義WEB瀏覽器與WEB服務(wù)器之間交換數(shù)據(jù)的過程。

HTTP結(jié)構(gòu)

  1. 客戶端是一個(gè)應(yīng)用程序(Web瀏覽器或其他任何客戶端),它連上web服務(wù)器后,可以從web服務(wù)器中獲取。
  2. 服務(wù)器同樣也是一個(gè)應(yīng)用程序(通常是一個(gè)Web服務(wù),如Apache Web服務(wù)器或IIS服務(wù)器等)接收客戶端的請(qǐng)求,響應(yīng)數(shù)據(jù)。
  3. 客戶端和服務(wù)器需要遵守一定的通訊格式,HTTP協(xié)議來定義他們的通訊格式。

HTTP請(qǐng)求報(bào)文

請(qǐng)求報(bào)文包含四部分: 請(qǐng)求行(request line), 請(qǐng)求頭部(header),空行,請(qǐng)求數(shù)據(jù)

// 請(qǐng)求行   (請(qǐng)求方式  請(qǐng)求資源  http協(xié)議版本)
POST /chapter17/user.html HTTP/1.1  
//  請(qǐng)求頭  (頭部字段名:值)
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3  
Host: localhost:8088
Accept-Language: en, mi
// 空行

// 請(qǐng)求數(shù)據(jù)
name=tom&pwd=0000

HTTP響應(yīng)報(bào)文

響應(yīng)報(bào)文包含四部分: 響應(yīng)行(response line),響應(yīng)頭部(header),空行,響應(yīng)數(shù)據(jù)

// 響應(yīng)行 (http協(xié)議版本 狀態(tài)碼以及狀態(tài)描述)
HTTP/1.1 200 OK
// 響應(yīng)頭部  (頭部字段名:值)
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Accept-Ranges: bytes
Content-Type: text/plain
// 空行

// 響應(yīng)數(shù)據(jù)
{"userName":"tom", "realName":"TomJosh"}

HTTP請(qǐng)求方式

常用的一些請(qǐng)求方式:

  1. GET: 只被用于獲取數(shù)據(jù),請(qǐng)求指定的頁面信息,并返回實(shí)體主體
  2. POST: 向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或者上傳文件),數(shù)據(jù)被包含在請(qǐng)求體中。POST 請(qǐng)求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改
  3. PUT: 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容
  4. DELETE: 請(qǐng)求服務(wù)器刪除指定的資源

HTTP響應(yīng)狀態(tài)碼

常見的狀態(tài)碼:

  1. 200: 請(qǐng)求成功
  2. 301: 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL
  3. 404: 請(qǐng)求的資源(網(wǎng)頁等)不存在
  4. 500: 內(nèi)部服務(wù)器錯(cuò)誤
狀態(tài)碼 狀態(tài)英文名 描述
200 OK 請(qǐng)求成功。一般用于GET與POST請(qǐng)求
201 Created 已創(chuàng)建。成功請(qǐng)求并創(chuàng)建了新的資源
202 Accepted 已接受。已經(jīng)接受請(qǐng)求,但未處理完成
203 Non-Authoritative Information 非授權(quán)信息。請(qǐng)求成功。但返回的meta信息不在原始的服務(wù)器,而是一個(gè)副本
204 No Content 無內(nèi)容。服務(wù)器成功處理,但未返回內(nèi)容。在未更新網(wǎng)頁的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔
300 Multiple Choices 多種選擇。請(qǐng)求的資源可包括多個(gè)位置,相應(yīng)可返回一個(gè)資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇
301 Moved Permanently 永久移動(dòng)。請(qǐng)求的資源已被永久的移動(dòng)到新URI,返回信息會(huì)包括新的URI,瀏覽器會(huì)自動(dòng)定向到新URI。今后任何新的請(qǐng)求都應(yīng)使用新的URI代替
302 Found 臨時(shí)移動(dòng)。與301類似。但資源只是臨時(shí)被移動(dòng)??蛻舳藨?yīng)繼續(xù)使用原有URI
305 Use Proxy 使用代理。所請(qǐng)求的資源必須通過代理訪問
400 Bad Request 客戶端請(qǐng)求的語法錯(cuò)誤,服務(wù)器無法理解
401 Unauthorized 請(qǐng)求要求用戶的身份認(rèn)證
403 Forbidden 服務(wù)器理解請(qǐng)求客戶端的請(qǐng)求,但是拒絕執(zhí)行此請(qǐng)求
404 Not Found 服務(wù)器無法根據(jù)客戶端的請(qǐng)求找到資源(網(wǎng)頁)。通過此代碼,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請(qǐng)求的資源無法找到"的個(gè)性頁面
500 Internal Server Error 服務(wù)器內(nèi)部錯(cuò)誤,無法完成請(qǐng)求
501 Not Implemented 服務(wù)器不支持請(qǐng)求的功能,無法完成請(qǐng)求
502 Bad Gateway 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從遠(yuǎn)程服務(wù)器接收到了一個(gè)無效的響應(yīng)
504 Gateway Time-out 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請(qǐng)求
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容