自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Http協(xié)議你都了解嗎?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
通過 HTTP 或者 HTTPS 協(xié)議請求的資源由統(tǒng)一資源標(biāo)識符(Uniform Resource Identifiers,URI)來標(biāo)識。由 HTTP 客戶端發(fā)起一個(gè)請求,創(chuàng)建一個(gè)到服務(wù)器指定端口(默認(rèn)是80端口)的 TCP連接。

[[390013]]

1. HTTP協(xié)議

超文本傳輸協(xié)議(HyperText Transfer Protocol),縮寫HTTP

通過 HTTP 或者 HTTPS 協(xié)議請求的資源由統(tǒng)一資源標(biāo)識符(Uniform Resource Identifiers,URI)來標(biāo)識。由 HTTP 客戶端發(fā)起一個(gè)請求,創(chuàng)建一個(gè)到服務(wù)器指定端口(默認(rèn)是80端口)的 TCP連接。HTTP 服務(wù)器則在那個(gè)端口監(jiān)聽客戶端的請求。一旦收到請求,服務(wù)器會(huì)向客戶端返回一個(gè)狀態(tài),比如" HTTP/1.1 200 OK ",以及返回的內(nèi)容,如請求的文件、錯(cuò)誤消息、或者其它信息。

2. URI 和 URL

▐ 2.1 URI

Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符Web上可用的每種資源如HTML 文檔、圖像、視頻片段、程序等都是用URI來定位的;

URI 一般由三部分組成:

  1. 訪問資源的命名機(jī)制
  2. 存放資源的主機(jī)名
  3. 資源自身的名稱,由路徑表示,著重強(qiáng)調(diào)于資源

▐ 2.2 URL

Uniform Resource Location,統(tǒng)一資源定位符

URL 是 Internet 上用來描述信息資源的字符串,主要用在各種 WWW 客戶程序和服務(wù)器程序上。URL 是 URI 的一種。

采用 URL 可以用一種統(tǒng)一的格式來描述各種信息資源,包括文件、服務(wù)器的地址和目錄等。

URL 一般由三部組成

  1. 協(xié)議
  2. 可訪問該資源的主機(jī)IP地址(或帶有端口號)
  3. 主機(jī)資源的具體地址(目錄加文件名)

▐ 2.3 URL 的構(gòu)成

  1. 協(xié)議部分:協(xié)議部分為 http:
  2. 域名部分:域名部分例如"www.jianshu.com",當(dāng)然域名也可以用 IP 地址,IP 少 一步用DNS服務(wù)器解析
  3. 端口部分:域名和端口之間使用":"分隔。
  4. 端口不是URL必須的部分,如果端口省略,將采用默認(rèn)端口號80,所以實(shí)際請求地址是http://www.jianshu.com:80
  5. 虛擬目錄部分:從域名后的第一個(gè)“/”開始到最后一個(gè)“/”為止,是虛擬目錄部分。虛擬目錄也不是一個(gè)URL必須的部分。
  6. 文件名部分:指在服務(wù)器中訪問的資源文件的路徑。
  7. 錨部分:從“#”開始到最后,都是錨部分,也不是必須的部分。
  8. 做過 html 的都知道,用于定位到頁面的滑動(dòng)位置。
  9. 參數(shù)部分:從“?”開始到“#”為止之間的部分為參數(shù)部分,又稱搜索部分、查詢部分。例如?page=1。

3. 請求的種類

HTTP 協(xié)議中共定義了八種方法或者叫“動(dòng)作”來表明對 Request-URI 指定的資源的不同操作方式。就類似操作數(shù)據(jù)庫和文件系統(tǒng)一樣,設(shè)計(jì)網(wǎng)絡(luò)的請求也是一樣。URL 用于定位了網(wǎng)絡(luò)資源,創(chuàng)造 PUT,DELETE,POST,GET 來對應(yīng)增,刪,改,查操作。但是我們在實(shí)際應(yīng)用中常用的也就是 get 和 post,其他請求方式也都可以通過這兩種方式間接的來實(shí)現(xiàn)。

GET

向指定資源發(fā)出“顯示“信息。使用GET方法只用于獲取數(shù)據(jù),而不應(yīng)該改變數(shù)據(jù)本身,即不對數(shù)據(jù)進(jìn)行操作和提交信息。

POST

向指定資源提交數(shù)據(jù),請求服務(wù)器進(jìn)行處理(例如提交參數(shù)/表單,或者上傳文件)??赡軙?huì)對數(shù)據(jù)進(jìn)行操作和提交信心,創(chuàng)建資源。

PUT

向指定資源位置上傳其最新內(nèi)容。

DELETE

顧名思義,請求服務(wù)器刪除 URI 所對應(yīng)的資源。

HEAD

與 GET 方法一樣,都是向服務(wù)器發(fā)出指定資源的請求。只不過服務(wù)器將不傳回資源的本文部分。它的好處在于,使用這個(gè)方法可以在不必傳輸全部內(nèi)容的情況下,就可以獲取其中“關(guān)于該資源的信息”(元信息或稱元數(shù)據(jù))。

TRACE

回顯服務(wù)器收到的請求,主要用于測試或診斷。

OPTIONS

這個(gè)方法可使服務(wù)器傳回該資源所支持的所有 HTTP 請求方法。用'*'來代替資源名稱,向 Web 服務(wù)器發(fā)送 OPTIONS 請求,可以測試服務(wù)器功能是否正常運(yùn)作。

CONNECT

HTTP/1.1 協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。通常用于 SSL 加密服務(wù)器的鏈接(經(jīng)由非加密的 HTTP 代理服務(wù)器)。

4. GET 和 POST 的區(qū)別

1.參數(shù)攜帶位置不同。

GET 提交的數(shù)據(jù)會(huì)附加家 URL 之后(即把數(shù)據(jù)放在請求行中),會(huì)在地址欄中顯示,接?=傳值,多個(gè)參數(shù)用&連接。POST 提交的數(shù)據(jù)放在 HTTP 包體中,地址欄不顯示。

2.傳輸數(shù)據(jù)大小限制不同。

不同瀏覽器對 URL 的長度有限制,因此對于 GET 提交時(shí),傳輸數(shù)據(jù)就會(huì)受到URL 長度的限制。POST 由于不是通過 URL 傳值,理論上數(shù)據(jù)不受限。

3.POST 的安全性要比 GET 的安全性高。因?yàn)闉g覽器可能對請求地址做歷史記錄的存儲(chǔ),對于 GET 請求的登錄,那其他人就可以直接在 URL 上拿到你的賬號和密碼了,而 POST 拿不到參數(shù)。

5. HTTP 請求信息

客戶端發(fā)送一個(gè) HTTP 請求到服務(wù)的請求信息包括以下格式:

請求行(request line)、請求頭(header,常用于存放 token)、空行和請求數(shù)據(jù)四個(gè)部分。

例如:

  1. GET /8669504-c2641e8e6eed5904.png HTTP/1.1 
  2. Host    www.jianshu.com 
  3. User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 
  4. Accept    image/webp,image/,/*;q=0.8 
  5. Referer  www.jianshu.com 
  6. Accept-Encoding    gzip, deflate, sdch 
  7. Accept-Language    zh-CN,zh;q=0.8 
  8. name=Professional%20Ajax&publisher=lili 
  1. 第一行請求行,用來說明請求類型,要訪問的資源以及所使用的HTTP版本。
  2. 第二部分,大括號之間的請求頭部,用于提交服務(wù)器的附加信息。
  3. 第三部分,空行,請求頭部后面的空行是必須的。
  4. 第四部分,請求數(shù)據(jù)也叫主體,可以添加任意的其他數(shù)據(jù)。

6. HTTP 響應(yīng)信息

服務(wù)器接受請求回傳響應(yīng)信息也由四分部組成:

狀態(tài)行,消息報(bào)頭,空行和響應(yīng)正文。

例如:

  1. 第一行包括協(xié)議版本號,返回狀態(tài)碼
  2. 第二行為響應(yīng)日期時(shí)間
  3. 第三行為響應(yīng)消息報(bào)頭,Content-Type: 指定了 MIME 類型的 HTML(text/html),編碼類型是 UTF-8
  4. 響應(yīng)正文,服務(wù)器返回給客戶端的文本信息。

7. HTTP 狀態(tài)碼

狀態(tài)碼有三位數(shù)字,第一數(shù)字表示當(dāng)前相應(yīng)的類型,各個(gè)類型有:

  • 1xx消息——請求已被服務(wù)器接受,繼續(xù)處理
  • 2xx成功——請求已成功被服務(wù)器接收(如見到就像親人的200,201)
  • 3xx重定向——需要后續(xù)操作才能完成這一請求
  • 4xx請求錯(cuò)誤——客戶端錯(cuò)誤:請求含有詞法錯(cuò)誤或無法被執(zhí)行(如見到就想暴走的404 Not Found)
  • 5xx服務(wù)器錯(cuò)誤——服務(wù)端錯(cuò)誤:服務(wù)器在處理某個(gè)正確請求時(shí)發(fā)生錯(cuò)誤(如一見到就想找后臺(tái)的500)

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

  • 200 OK:客戶端請求成功
  • 400 Bad Request:客戶端請求有語法錯(cuò)誤,不能被服務(wù)器所理解
  • 401 Unauthorized:請求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和 WWW-Authenticate 報(bào)頭域一起使用
  • 403 Forbidden:服務(wù)器收到請求,但是拒絕提供服務(wù)
  • 500 Internal Server Error:服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
  • 503 Server Unavailable:服務(wù)器當(dāng)前不能處理客戶端的請求,一段時(shí)間后可能恢復(fù)正常

8. 總結(jié)HTTP一次請求的完整過程

  1. 客戶端與服務(wù)端建立 TCP 連接
  2. 通過 TCP 套接字連接,發(fā)送 HTTP 請求
  3. 服務(wù)器解析請求,定位請求資源,將查詢資源然后返回 HTML 文本數(shù)據(jù),由客戶端讀取。
  4. 釋放 TCP 連接
  5. 客戶端瀏覽器解析 HTML 內(nèi)容

瀏覽器輸入網(wǎng)站發(fā)生的事件:

  1. 瀏覽器向 DNS 服務(wù)器請求解析該 URL 中的域名所對應(yīng)的 IP 地址;
  2. 解析出 IP 地址后,根據(jù)該 IP 地址和默認(rèn)端口 80,和服務(wù)器建立 TCP 連接;
  3. 瀏覽器發(fā)出讀取文件(URL 中域名后面部分對應(yīng)的文件)的 HTTP 請求,該請求報(bào)文作為 TCP 三次握手的第三個(gè)報(bào)文的數(shù)據(jù)發(fā)送給服務(wù)器;
  4. 服務(wù)器對瀏覽器請求作出響應(yīng),并把對應(yīng)的 html 文本發(fā)送給瀏覽器;
  5. 釋放 TCP 連接;
  6. 瀏覽器將該 html 文本并顯示內(nèi)容;

以上是 Http 的全部總結(jié),該篇文章不斷完善不斷更新。

 

責(zé)任編輯:姜華 來源: 網(wǎng)羅開發(fā)
相關(guān)推薦

2022-07-11 07:10:48

HTTP協(xié)議類型

2021-01-07 05:40:13

BLE模塊Android

2023-12-07 08:13:58

Java開發(fā)

2020-02-20 08:30:49

OSPF網(wǎng)絡(luò)協(xié)議路由協(xié)議

2019-09-17 09:31:10

2018-06-21 07:25:04

2023-12-11 07:40:00

CDN網(wǎng)絡(luò)服務(wù)器

2024-01-18 09:07:04

Errors函數(shù)Golang

2019-11-25 12:38:14

混合云云計(jì)算企業(yè)

2023-06-08 11:57:15

Matter協(xié)議家庭智能

2015-11-06 09:39:52

2024-12-26 08:42:37

2025-01-21 00:00:00

權(quán)限模型RBAC

2015-11-06 10:52:51

2021-08-29 18:01:57

HTTP協(xié)議版本

2019-05-12 14:35:03

惡意軟件網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2020-07-06 12:09:24

DNS域名系統(tǒng)IP地址

2020-02-11 17:39:44

RSAC信息安全會(huì)議RSA大會(huì)

2010-09-03 12:20:54

數(shù)據(jù)庫

2024-01-09 07:42:46

Shutil 模塊Python 編程工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號