HTTP協(xié)議又叫超文本傳輸協(xié)議,協(xié)議是指兩臺(tái)計(jì)算機(jī)之間在網(wǎng)絡(luò)中進(jìn)行通信所必須遵守的規(guī)則或約定。目前我們使用的HTTP協(xié)議是http1.1版本扇谣。
URL
通常我們?cè)跒g覽器上輸入的網(wǎng)址就是所謂的URL地址锣尉,URL的全稱是(Unifrom Resource Locator)即“統(tǒng)一資源定位符”。用于描述網(wǎng)絡(luò)上某一處資源的地址皂贩。
url的格式
例如:
http://127.0.0.1:8080/test/test?name=aa
格式 | 描述 |
---|---|
http | 使用的協(xié)議(如:http栖榨、https、ftp) |
127.0.01 | HTTP服務(wù)器的IP地址或者域名(如:www.baidu.com) |
8080 | 端口號(hào)明刷,HTTP默認(rèn)的端口號(hào)是80婴栽,這種情況下端口號(hào)可以省略不寫。 |
test/test | 訪問資源的路徑辈末。 |
? | 愚争?號(hào)后面是發(fā)給HTTP服務(wù)器的參數(shù)映皆。或者叫Query String |
# | #號(hào)后面是錨點(diǎn) |
HTTP請(qǐng)求方法
HTTP協(xié)議定義了很多與服務(wù)器交付的方法轰枝。如果說一個(gè)URL地址用來指定網(wǎng)絡(luò)上的資源位置捅彻,而HTTP的方法就是對(duì)這個(gè)資源進(jìn)行的增、刪鞍陨、改步淹、查等操作。
方法 | 描述 |
---|---|
GET | 請(qǐng)求指定的頁(yè)面信息(查)
|
HEAD | 類似于GET請(qǐng)求湾戳,只不過返回的響應(yīng)中沒有具體內(nèi)容贤旷,只有報(bào)頭(查)
|
POST | 向指定的資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或上傳文件)數(shù)據(jù)被包含在請(qǐng)求體中。(增)
|
PUT | 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容砾脑。(改)
|
DELETE | 請(qǐng)求服務(wù)器刪除指定的頁(yè)面幼驶。(刪)
|
HTTP狀態(tài)碼
每個(gè)HTTP響應(yīng)報(bào)文中都會(huì)攜帶一個(gè)狀態(tài)碼,用于告訴客戶端請(qǐng)求是否成功韧衣。
常見的狀態(tài)碼
狀態(tài)碼 | 說明 | 描述 |
---|---|---|
200 | 成功 | 服務(wù)器成功處理了請(qǐng)求盅藻。OK |
201 | 已創(chuàng)建 | 請(qǐng)求成功并且服務(wù)器創(chuàng)建了新的資源 |
301 | 永久移動(dòng) | 重定向,表示請(qǐng)求的網(wǎng)頁(yè)已經(jīng)永久性地轉(zhuǎn)移到另一個(gè)地址上了畅铭。此時(shí)響應(yīng)中應(yīng)該包含一個(gè)Location url氏淑,說明資源現(xiàn)在所處的位置。 |
302 | 臨時(shí)移動(dòng) | 重定向硕噩,表示舊地址的資源還在假残,只是臨時(shí)地從舊地址跳轉(zhuǎn)到新地址。此時(shí)響應(yīng)中應(yīng)該包含一個(gè)Location url炉擅,說明資源現(xiàn)在所處的位置辉懒。 |
304 | 緩存 | 使用緩存 |
400 | 錯(cuò)誤請(qǐng)求 | 服務(wù)器無法解析該請(qǐng)求 |
401 | 未授權(quán) | 請(qǐng)求沒有進(jìn)行身份驗(yàn)證或驗(yàn)證未通過 |
403 | 禁止訪問 | 服務(wù)器拒絕此請(qǐng)求 |
404 | Not Found | 服務(wù)器未找到請(qǐng)求的網(wǎng)頁(yè) |
500 | 服務(wù)器內(nèi)部錯(cuò)誤 | 服務(wù)遇到錯(cuò)誤,無法完成請(qǐng)求 |
501 | 未實(shí)現(xiàn) | 服務(wù)器不具備完成請(qǐng)求的功能 |
502 | 錯(cuò)誤網(wǎng)關(guān) | 服務(wù)器作為網(wǎng)關(guān)或代理谍失,從上游服務(wù)器收到無效響應(yīng) |
503 | 服務(wù)器暫時(shí)不可用 | 由于服務(wù)器維護(hù)或者過載眶俩。 |
請(qǐng)求報(bào)文的結(jié)構(gòu)
請(qǐng)求報(bào)文分為三個(gè)部分組成:起始行、請(qǐng)求頭快鱼、請(qǐng)求主體颠印。
請(qǐng)求頭和請(qǐng)求主體之間有個(gè)空行,因?yàn)槭荊et請(qǐng)求所以請(qǐng)求體是空的
(1)起始行
例如:
GET http://www.reibang.com/ HTTP/1.1
GET : 請(qǐng)求方法
http://www.reibang.com :請(qǐng)求URL
HTTP/1.1 : 協(xié)議版本
(2)請(qǐng)求頭(Header)
Accept : 表示瀏覽器客戶端可以接受的數(shù)據(jù)類型抹竹。/线罕;q=0.8代表所有類型
Accept-Encoding :表示瀏覽器支持的壓縮方式。
Accept-Language :表示瀏覽器接受的語(yǔ)言
User-Agent:告訴服務(wù)器客戶端使用的什么操作系統(tǒng)及版本柒莉、CPU類型闻坚、瀏覽器及版本、瀏覽器渲染引擎等兢孝。
Referer :用來讓服務(wù)器判斷來源頁(yè)面窿凤,即用戶從哪個(gè)頁(yè)面來的。
Connection :從HTTP/1.1起跨蟹,默認(rèn)都開啟了 Connection :Keey-Alive雳殊。保持連接特性。
Host:指定被請(qǐng)求的主機(jī)號(hào)和端口號(hào)窗轩,這個(gè)是必需的夯秃。
Cache: 緩存內(nèi)容
Cookies: Cookies