概述
Server(服務(wù)器):服務(wù)器作為硬件來說虑啤,通常是指那些具有較高計(jì)算能力颊埃,能夠提供給多個(gè)用戶使用的計(jì)算機(jī)
Client(客戶端):是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序
瀏覽器 + 服務(wù)器 + HTTP 三者關(guān)系
- 瀏覽器負(fù)責(zé)發(fā)起請(qǐng)求
- 服務(wù)器在80端口接收請(qǐng)求
- 服務(wù)器負(fù)責(zé)返回內(nèi)容(響應(yīng))
- 瀏覽器負(fù)責(zé)下載響應(yīng)內(nèi)容
HTTP 的作用就是指導(dǎo)瀏覽器和服務(wù)器如何進(jìn)行溝通。
請(qǐng)求
請(qǐng)求頭(Request Headers)格式
1.請(qǐng)求類型 路徑 協(xié)議/版本 // 請(qǐng)求行
2.key: value // 請(qǐng)求頭
3.
4.要上傳的數(shù)據(jù) // 其他消息體
請(qǐng)求類型
GET ==> 用于獲取數(shù)據(jù)补疑。
POST ==> 用于提交數(shù)據(jù),請(qǐng)求服務(wù)器進(jìn)行處理歹撒。
PUT ==> 向指定資源位置上傳其最新內(nèi)容(所有內(nèi)容都更新)莲组。
PATCH ==> 用于將局部修改應(yīng)用到資源。
DELETE ==> 請(qǐng)求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源暖夭。
HEAD ==> 向服務(wù)器發(fā)出指定資源的請(qǐng)求锹杈,但服務(wù)器將不傳回資源的本文部分。
OPTIONS ==> 使服務(wù)器傳回該資源所支持的所有HTTP請(qǐng)求方法迈着,向Web服務(wù)器發(fā)送OPTIONS請(qǐng)求竭望,可以測試服務(wù)器功能是否正常運(yùn)作。
路徑
必須以 /
開頭裕菠,如果不設(shè)置咬清,默認(rèn)為 /
,路徑包括查詢參數(shù)奴潘,但是不包括錨點(diǎn)
版本:
版本大部分都是 HTTP/1.1
旧烧,還有HTTP/2
.
請(qǐng)求頭(key: value):
請(qǐng)求頭定義一些操作參數(shù)。其中
Host: www.baidu.com // 域名
User-Agent: // 用的什么軟件發(fā)起的請(qǐng)求
Content-Type: application/x-www-form-urlcoded //標(biāo)識(shí)了第4部分的格式画髓,POST 請(qǐng)求
Content-Length:
Cookie:
第3部分:
是一個(gè)空行(回車)掘剪。
第4部分:
上傳的數(shù)據(jù),可以沒有
說明
- https 協(xié)議 ==> 所有數(shù)據(jù)在網(wǎng)絡(luò)上請(qǐng)求和傳輸?shù)臅r(shí)候都是加密的
- http 協(xié)議 ==> 所有數(shù)據(jù)在網(wǎng)絡(luò)上請(qǐng)求和傳輸?shù)臅r(shí)候都是明文的
響應(yīng)
響應(yīng)頭(Response Headers)格式
1.協(xié)議/版本 狀態(tài)碼 狀態(tài)解釋
2.key: value
3.
4.要下載的數(shù)據(jù)
狀態(tài)碼:
表示網(wǎng)頁服務(wù)器超文本傳輸協(xié)議響應(yīng)狀態(tài)的3位數(shù)字代碼奈虾。
-
2xx成功 ==> 代表請(qǐng)求已成功被服務(wù)器接收夺谁、理解肆汹、并接受。
a.200 OK 請(qǐng)求已成功予权,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回(GET)昂勉。 b.204 No Content 服務(wù)器成功處理了請(qǐng)求,沒有返回任何內(nèi)容(創(chuàng)建成功 ==> POST)扫腺。
-
3xx重定向 ==> 類狀態(tài)碼代表需要客戶端采取進(jìn)一步的操作才能完成請(qǐng)求岗照。
a.301 Move Permanently 被請(qǐng)求的資源已永久移動(dòng)到新位置,并且將來任何對(duì)此資源的引用都應(yīng)該使用本響應(yīng)返回的若干個(gè)URI之一笆环。 b.302 Found 要求客戶端執(zhí)行臨時(shí)重定向攒至。 c.304 Not Modified 表示資源未被修改。在這種情況下躁劣,由于客戶端仍然具有以前下載的副本迫吐,因此不需要重新傳輸資源。
-
4xx客戶端錯(cuò)誤 ==> 這類的狀態(tài)碼代表了客戶端看起來可能發(fā)生了錯(cuò)誤账忘,妨礙了服務(wù)器的處理志膀。
a.403 Forbidden 客戶端錯(cuò)誤,服務(wù)器已經(jīng)理解請(qǐng)求鳖擒,但是拒絕執(zhí)行 它溉浙。 b.404 Not Found 請(qǐng)求失敗,請(qǐng)求所希望得到的資源未被在服務(wù)器上發(fā) 現(xiàn)蒋荚,但允許用戶的后續(xù)請(qǐng)求戳稽。
-
5xx服務(wù)器錯(cuò)誤 ==> 表示服務(wù)器無法完成明顯有效的請(qǐng)求。
a.500 Internal Server Error 通用錯(cuò)誤消息期升,服務(wù)器遇到了一個(gè)未曾預(yù)料的狀況惊奇,導(dǎo)致了它無法完成對(duì)請(qǐng)求的處理。 b.502 Bad Gateway 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí)播赁,從上游服務(wù)器接收到無效的響應(yīng)颂郎。
HTML 與 HTTP
所有 App 都會(huì)內(nèi)置一個(gè)瀏覽器(WebView)用來展示 HTML,而 HTML 都是通過 HTTP 下載的行拢,而如果你要使用 HTTP 一般都會(huì)用到 URL祖秒。