HTTP

Http學(xué)習(xí)

標(biāo)簽: http

Http請求與響應(yīng)

1.HTTP簡介

?? HTTP協(xié)議,全稱為Hyper Text Transfer Protocol,中文名為超文本傳輸協(xié)議,是互聯(lián)網(wǎng)中最常用的一種網(wǎng)絡(luò)協(xié)議。HTTP協(xié)議有很多應(yīng)用,最流行的就是用于web瀏覽器和web服務(wù)器之間的通信,即www應(yīng)用或稱web應(yīng)用。

?? WWW,全稱為World Wide Web,常稱為web。Http協(xié)議的WWW服務(wù)應(yīng)用的默認(rèn)端口為80,另外一個加密的WWW服務(wù)應(yīng)用https(s即secure)的默認(rèn)端口為443,主要用于網(wǎng)銀,支付等和金融相關(guān)的業(yè)務(wù)。

?? HTTP協(xié)議中最主要的是HTTP/1.0HTTP/1.1,其中HTTP/1.0是第一個得到廣泛使用的版本,而1.1逐漸成為當(dāng)前使用的主流。HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請求。Web服務(wù)器根據(jù)接收到的請求后,向客戶端發(fā)送響應(yīng)信息。

cs.jpg

2.HTTP請求方法

?? 在HTTP通信中,每個HTTP請求報文都包含一個方法,用以告訴Web服務(wù)器端需要執(zhí)行哪些動作。
具體為:

HTTP方法 作用描述
GET 請求指定的頁面信息,并返回實體主體。
HEAD 類似于get請求,只不過返回的響應(yīng)中沒有具體的內(nèi)容,用于獲取報頭
POST 向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中
PUT 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。
DELETE 請求服務(wù)器刪除指定的頁面。
CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。
OPTIONS 允許客戶端查看服務(wù)器的性能。
TRACE 回顯服務(wù)器收到的請求,主要用于測試或診斷。

3.HTTP狀態(tài)碼

?? 當(dāng)瀏覽者訪問一個網(wǎng)頁時,瀏覽者的瀏覽器會向網(wǎng)頁所在服務(wù)器發(fā)出請求。當(dāng)瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會返回一個包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請求。
HTTP狀態(tài)碼的英文為HTTP Status Code。

分類 分類描述
100-199 信息,服務(wù)器收到請求,需要請求者繼續(xù)執(zhí)行操作
200-299 成功,操作被成功接收并處理
300-399 重定向,需要進(jìn)一步的操作以完成請求
400-499 客戶端錯誤,請求包含語法錯誤或無法完成請求
500-599 服務(wù)器錯誤,服務(wù)器在處理請求的過程中發(fā)生了錯誤

HTTP狀態(tài)碼共分為5種類型:

分類 分類描述
100-199 信息,服務(wù)器收到請求,需要請求者繼續(xù)執(zhí)行操作
200-299 成功,操作被成功接收并處理
300-399 重定向,需要進(jìn)一步的操作以完成請求
400-499 客戶端錯誤,請求包含語法錯誤或無法完成請求
500-599 服務(wù)器錯誤,服務(wù)器在處理請求的過程中發(fā)生了錯誤

?? 下面是常見的HTTP狀態(tài)碼:

  • 200  請求成功
    
  • 301  資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL
    
  • 404  請求的資源(網(wǎng)頁等)不存在
    
  • 500  內(nèi)部服務(wù)器錯誤
    

4.HTTP報文

?? HTTP報文分為兩種,一種是從Web客戶端發(fā)往Web服務(wù)器的HTTP報文,稱為請求報文,另外一種是從Web服務(wù)器發(fā)往客戶端的報文,稱為響應(yīng)報文。HTTP的請求和響應(yīng)報文格式類似。

1.HTTP請求報文

HTTP請求報文由請求行、請求頭部、空行和請求報文主體組成。

下圖給出了一般格式:

request.png

下面逐一闡述:

(1)?請求行

?? 請求行是請求報文的第一行,內(nèi)容由請求方法字段,URL字段和HTTP協(xié)議版本字段組成,之間用空格隔開

(2)?請求頭部

?? 請求頭部由關(guān)鍵字/值對組成,每行一對,關(guān)鍵字和值用英文冒號 :分割,其作用是通過客戶端把請求的相關(guān)信息告訴給服務(wù)器。

常見的請求頭部信息如下表:

請求頭信息 說明
Accept: text/plain, text/html 媒體類型
Accept-Charset: iso-8859-5 字符編碼集
Accept-Language: zh-cn 語言類型
Accept-Encoding: gzip,deflate 支持壓縮
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT; ...) 客戶端類型
Host: www.xxx.xxx 主機名

除此,與請求報文相關(guān)的常用的請求頭有Content-Type和Content-Length。

(3)?空行

?? 最后一個請求頭部信息之后是一個空行,通過發(fā)送回車符和換行符,通知Web服務(wù)器空行下面不會有請求頭部的信息了。

(4)?請求報文主體

?? 請求報文主體中包含了要發(fā)送給Web服務(wù)器的數(shù)據(jù)信息。
請求數(shù)據(jù)不在GET方法中使用,而在POST方法中使用。POST方法適用于需要客戶填寫表單的場合。

示例如下:

GET /index.html HTTP/1.1
Accept:image/gif.image/jpeg,*/*
Accept-Language:zh-cn
Accept-Encoding:gzip,deflate
User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Connection:Keep-Alive
Host:localhost 
username=test&password=1234

2.HTTP響應(yīng)報文

響應(yīng).jpg

響應(yīng)報文和請求報文類似。其中,響應(yīng)報文主體裝載了服務(wù)器端要返回給客戶端的數(shù)據(jù),可以是文本類型,也可以是二進(jìn)制的(圖片和視頻等)。

本文篇幅有限,僅介紹至此。

參考資料

  1. 菜鳥教材
  2. cn博客
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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