欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請(qǐng)碼778899分享:網(wǎng)絡(luò) 網(wǎng)絡(luò)協(xié)議 HTTP詳解

柚子快報(bào)邀請(qǐng)碼778899分享:網(wǎng)絡(luò) 網(wǎng)絡(luò)協(xié)議 HTTP詳解

http://yzkb.51969.com/

目錄

HTTP是什么?

HTTP協(xié)議格式

抓包工具的原理

HTTP請(qǐng)求格式

HTTP響應(yīng)格式

URL

URL是什么

URL encode

方法(method)

GET方法

POST方法

GET和POST的區(qū)別

其他方法

header

Host

Content-Length

Content-Type

User-Agent(簡稱UA)

Referer

Cookie

正文(body)?

狀態(tài)碼(status code)

200 OK

404 Not Found

403 Forbidden

405 Method Not Allowed

500 Internal Server Error

504 Getway Timeout

302 Move temporarily

301 Moved Permanently

構(gòu)造 HTTP 請(qǐng)求

form 表單

ajax

第三方工具

HTTP是什么?

HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議):是一種用于傳輸超文本數(shù)據(jù)(如 HTML、圖片、視頻等)的應(yīng)用層協(xié)議。

什么是超文本?

超文本是一種文本類型,通過鏈接將文本、圖片、視頻等多媒體內(nèi)容相互關(guān)聯(lián)起來的文本形式,不僅包括文字內(nèi)容,還可以通過鏈接(超鏈接)在文檔之間或者文檔內(nèi)部進(jìn)行非線性的、隨意的跳轉(zhuǎn)和瀏覽。簡而言之,就是傳輸內(nèi)容不僅僅是文本,還可以是一些其他的資源,如圖片、視頻、音頻等二進(jìn)制數(shù)據(jù)

發(fā)展和版本:

HTTP/1.0:初期標(biāo)準(zhǔn),簡單的請(qǐng)求-響應(yīng)模型

HTTP/1.1:引入了持久連接、管道化(pipelining)和分塊傳輸編碼(chunked transfer encoding)等特性,提高了性能和效率

HTTP/2:基于 Google 的 SPDY 協(xié)議發(fā)展而來,引入了多路復(fù)用(multiplexing)、頭部壓縮(header compression)、服務(wù)器推送(server push)等新特性,進(jìn)一步提升了性能

HTTP/3:基于 UDP 協(xié)議的 QUIC 協(xié)議發(fā)展而來,主要解決了 TCP 連接上的性能問題,如連接握手時(shí)延遲、隊(duì)頭阻塞等

?HTTP往往是基于傳輸層的 TCP 協(xié)議實(shí)現(xiàn)的(1.0 1.1 和 2 都基于TCP,3 基于 UDP實(shí)現(xiàn))

目前,主要使用的還是 HTTP1.1 和 HTTP2.0,因此,我們主要學(xué)習(xí) 1.1版本

我們平時(shí)打開一個(gè)網(wǎng)站時(shí),就是通過 HTTP 協(xié)議來傳輸數(shù)據(jù)的

當(dāng)前的 百度首頁 是通過 https 來進(jìn)行通信的,https 是在 http 基礎(chǔ)上做了加密解密工作,關(guān)于 https 我們后面再進(jìn)行學(xué)習(xí)

HTTP協(xié)議的交互過程,是非常典型的 “一問一答”,即一個(gè)HTTP請(qǐng)求,對(duì)應(yīng)一個(gè)HTTP響應(yīng)

當(dāng)我們?cè)跒g覽器中輸入百度的 網(wǎng)址(URL)時(shí),瀏覽器就向百度的服務(wù)器發(fā)送了一個(gè) HTTP 請(qǐng)求,百度的服務(wù)器返回一個(gè) HTTP 響應(yīng)

這個(gè)響應(yīng)結(jié)果被瀏覽器解析后,就展示成我們看到的頁面內(nèi)容

在這個(gè)過程中瀏覽器可能會(huì)向服務(wù)器發(fā)送多個(gè) HTTP 請(qǐng)求,服務(wù)器會(huì)對(duì)應(yīng)返回多個(gè)響應(yīng),這些響應(yīng)中就包含了 頁面 HTML、CSS、JavaScript、圖片等信息?

我們可以通過瀏覽器的 開發(fā)者工具 觀察到這個(gè)詳細(xì)過程

單擊右鍵,選擇 “檢查”,或通過 F12 打開瀏覽器的開發(fā)者工具,切換到 Network,再刷新頁面,就可看到:

HTTP協(xié)議格式

HTTP是一個(gè)文本格式的協(xié)議,可以通過瀏覽器的 開發(fā)者工具 或 Fiddler 等進(jìn)行抓包,分析 HTTP 請(qǐng)求和響應(yīng)的細(xì)節(jié)

在這里,以 Fiddler 進(jìn)行抓包分析

左側(cè)窗口顯示了所有的 HTTP 請(qǐng)求/響應(yīng),可以選中某個(gè)請(qǐng)求查看詳情

右側(cè)上方顯示了 HTTP 請(qǐng)求的報(bào)文內(nèi)容,選擇Raw可查看HTTP請(qǐng)求的原始數(shù)據(jù)

右側(cè)下方顯示了 HTTP 響應(yīng)的報(bào)文內(nèi)容,選擇Raw可查看HTTP響應(yīng)的原始數(shù)據(jù)

若想要查看請(qǐng)求或響應(yīng)的詳細(xì)數(shù)據(jù),可點(diǎn)擊?View in Notepad,通過記事本打開?

其中,藍(lán)色的表示返回的是一個(gè) html,往往是訪問一個(gè)網(wǎng)站的入口請(qǐng)求,選中這個(gè)請(qǐng)求并雙擊,就能夠看到明細(xì)?

請(qǐng)求明細(xì):

響應(yīng)明細(xì):

在抓包觀察響應(yīng)數(shù)據(jù)時(shí),可能會(huì)看到壓縮后的數(shù)據(jù):

網(wǎng)絡(luò)傳輸中的"帶寬" 是稀缺資源,因此,為了傳輸效率更高,往往會(huì)對(duì)數(shù)據(jù)進(jìn)行壓縮

點(diǎn)擊

?

?即可進(jìn)行解壓,查看原始內(nèi)容

分別用記事本打開:

請(qǐng)求:

?響應(yīng):

抓包工具的原理

Fiddler 相當(dāng)于一個(gè) "代理",瀏覽器訪問 baido.com 時(shí),會(huì)把 HTTP 請(qǐng)求先發(fā)給 Fiddler,F(xiàn)iddler 再將請(qǐng)求轉(zhuǎn)發(fā)給 百度的服務(wù)器,百度的服務(wù)器返回?cái)?shù)據(jù)時(shí), Fiddler 那到返回的數(shù)據(jù),再將數(shù)據(jù)交給瀏覽器

因此,F(xiàn)iddler 對(duì)于瀏覽器 和 百度服務(wù)器之間交互的數(shù)據(jù)細(xì)節(jié)是非常清楚的

HTTP請(qǐng)求格式

HTTP請(qǐng)求包含了4個(gè)部分:

1. 首行

其中又包含三部分內(nèi)容:

GET https://www.baidu.com/ HTTP/1.1

方法(method) + url + 版本,三個(gè)部分使用空格進(jìn)行分割

2. 請(qǐng)求頭(Header)

包含了關(guān)于請(qǐng)求的屬性,冒號(hào)分割的鍵值對(duì),每組屬性之間使用換行(\n)分割?

關(guān)于其中的具體內(nèi)容,后續(xù)進(jìn)行詳細(xì)介紹?

3. 空行

?分割請(qǐng)求頭和請(qǐng)求體

4. 請(qǐng)求體(Request Body,可選)

一些請(qǐng)求可能會(huì)包含請(qǐng)求體,例如在 POST 請(qǐng)求中,用來發(fā)送表單數(shù)據(jù)或者上傳文件等

這四個(gè)部分組合在一起構(gòu)成了一個(gè)完整的HTTP請(qǐng)求,用于向服務(wù)器請(qǐng)求特定的資源或執(zhí)行特定的操作

HTTP響應(yīng)格式

1. 首行

HTTP/1.1 200 OK

也包含3部分內(nèi)容:版本號(hào) + 狀態(tài)碼 + 狀態(tài)碼描述(3個(gè)部分之間使用空格分割)

2. 響應(yīng)頭(Header)

包含了關(guān)于響應(yīng)的屬性,冒號(hào)分割的鍵值對(duì),每組屬性之間使用換行(\n)分割?

3. 空行

分割響應(yīng)頭和響應(yīng)體?

4. 響應(yīng)體(Response Body)

包含了實(shí)際的響應(yīng)數(shù)據(jù),如 HTML 頁面、JSON 數(shù)據(jù)

協(xié)議格式總結(jié)

為什么 HTTP報(bào)文中存在 “空行”?

這是因?yàn)镠TTP協(xié)議并沒有規(guī)定報(bào)頭部分的鍵值對(duì)有多少個(gè),空行相當(dāng)于是 報(bào)頭的結(jié)束標(biāo)記,或是報(bào)頭與正文之間的分隔符。HTTP在傳輸層依賴TCP協(xié)議,TCP協(xié)議是面向字節(jié)流的,若沒有這個(gè)空行,就會(huì)出現(xiàn) "粘包問題"

URL

URL是什么

URL(Uniform Resource Locator,統(tǒng)一資源定位符):也就是平時(shí)俗稱的網(wǎng)址,用于標(biāo)識(shí)和定位互聯(lián)網(wǎng)上資源的地址,是 Web 中訪問資源的標(biāo)準(zhǔn)方式

示例:

https://www.example.com:443/path/to/resource?param1=value1¶m2=value2#section1 ?

?

?https:協(xié)議方案名,如 http、https 以及訪問 mysql 時(shí)用的 jdbc:mysql

www.example.com:服務(wù)器地址,可以是域名,也可以是IP地址,域名會(huì)通過DNS系統(tǒng)解析成一個(gè)具體的IP地址

443:端口號(hào),可以省略,當(dāng)端口號(hào)省略時(shí),瀏覽器會(huì)根據(jù)協(xié)議類型自動(dòng)決定使用哪個(gè)端口,如 http協(xié)議默認(rèn)使用 80 端口,https 協(xié)議默認(rèn)使用 443 端口

/path/to/resource:帶層次的文件路徑

param1=value1¶m2=value2:查詢字符串(query string),本質(zhì)是一個(gè)鍵值對(duì)結(jié)構(gòu),鍵值對(duì)之間使用&分割,鍵值之間使用=間隔,key和value的取值和個(gè)數(shù),由我們自行約定,通過這種方式來自定制傳輸需要的信息給服務(wù)器

section1:片段標(biāo)識(shí)符,針對(duì)請(qǐng)求內(nèi)容做的補(bǔ)充說明,片段標(biāo)識(shí)主要用于頁面內(nèi)跳轉(zhuǎn)

URL中可以省略的部分

協(xié)議名:可以省略,省略后默認(rèn)為 http://

IP地址 / 域名:在 HTML 中可以省略(如 img,link,script,a 標(biāo)簽的 src 或者 href 屬性),省略后表示服務(wù)器的 ip / 域名 與當(dāng)前 HTML 所屬的 ip / 域名 一致

端口號(hào):可以省略,省略后若是 http 協(xié)議,端口號(hào)自動(dòng)設(shè)置為 80,若是 https 協(xié)議,端口號(hào)自動(dòng)設(shè)為 443

帶層次的文件路徑:可以省略,省略后相當(dāng)于 /,有些服務(wù)器會(huì)在發(fā)現(xiàn) / 路徑的時(shí)候自動(dòng)訪問 /index.html

查詢字符串:可以省略

片段標(biāo)識(shí):可以省略

URL encode

像 / ? : 等這樣的字符,已經(jīng)被 url 當(dāng)作特殊意義理解了,因此這些字符串不能隨意出現(xiàn)

若某個(gè)參數(shù)中需要帶有這些特殊字符,就必須先對(duì)特殊字符進(jìn)行轉(zhuǎn)義

一個(gè)中文字符由 UTF-8 或 GBK 這樣的編碼方式構(gòu)成,雖然在 URL 中沒有特殊含義,但是仍然需要進(jìn)行轉(zhuǎn)義,否則瀏覽器可能把 UTF-8 / GBK 編碼中的某個(gè)字節(jié)當(dāng)作 URL中的特殊字符

轉(zhuǎn)義的規(guī)則:

將需要轉(zhuǎn)碼的字符轉(zhuǎn)換為 16 進(jìn)制,然后從右到左,去4位(不足4位直接處理),每2位作1位,前面加上 %,編碼成 %XY 格式

如:

方法(method)

方法說明支持的HTTP協(xié)議版本GET獲取資源1.0、1.1POST傳輸實(shí)體主體 1.0、1.1 PUT傳輸文件1.0、1.1HEAD獲得報(bào)文首部1.0、1.1DELETE刪除文件1.0、1.1OPTIONS詢問支持的方法1.1TRACE追蹤路徑1.1CONNECT要求用隧道協(xié)議連接代理1.1LINK建立和資源之間的聯(lián)系1.0UNLINE斷開連接關(guān)系1.0

GET方法

GET方法是最常用的HTTP方法,常用于獲取服務(wù)器上的某個(gè)資源

在瀏覽器中直接輸入 URL,此時(shí)瀏覽器就會(huì)發(fā)送一個(gè) GET 請(qǐng)求,HTML中的 link、img、script等標(biāo)簽,也會(huì)觸發(fā) GET 請(qǐng)求

如:

GET請(qǐng)求的特點(diǎn):

首行的第一部分為 GET

URL中的 query string 可以為空,也可以不為空

header 部分有若干鍵值對(duì)結(jié)構(gòu)

body部分通常為空

POST方法

POST方法也是一種常見的方法,常用于登錄頁面、資源上傳

通過 HTML 中的 form 標(biāo)簽可以構(gòu)造 POST 請(qǐng)求,或使用 JavaScript 的 ajax 也可以構(gòu)造 POST 請(qǐng)求

隨便找一個(gè)登錄頁面,輸入用戶名、密碼、驗(yàn)證碼之后,點(diǎn)擊登錄,就可以看到 POST請(qǐng)求

POST 請(qǐng)求的特點(diǎn):

首行的第一部分為 POST

URL的 query string 一般為空,也可以不為空

header部分有若干鍵值對(duì)結(jié)構(gòu)

body部分一般不為空,body部分的數(shù)據(jù)格式通過 header中的 Content-Type 指定,body的長度由header中的Content-Length指定

GET和POST的區(qū)別

(1)從本質(zhì)上來說,GET和POST本質(zhì)上沒有區(qū)別,使用GET的場(chǎng)景,也可以替換成POST;使用POST的場(chǎng)景,也可以替換成GET,這取決于你的代碼是如何實(shí)現(xiàn)的(部分服務(wù)器或?yàn)g覽器某些情況下GET和POST不能很好地替換,但大部分情況下可以進(jìn)行相互替換)

(2)從使用習(xí)慣上來說,GET通常沒有body,POST通常有body。GET會(huì)將需要給服務(wù)器的補(bǔ)充信息放到 query string中(url中),而POST會(huì)將這些信息放到body中,但是 GET也可以將數(shù)據(jù)放到body(但有的服務(wù)器或?yàn)g覽器可能不支持),POST也可以將數(shù)據(jù)放到 Query String(絕大多數(shù)服務(wù)器和瀏覽器都支持)

(3)從語義上來說,GET一般用于獲取數(shù)據(jù),POST一般用于提交數(shù)據(jù)(但實(shí)際使用時(shí)并不一定遵守上述要求)

(4)從冪等性來說,GET請(qǐng)求一般是冪等的,POST請(qǐng)求一般是不冪等的

什么是冪等?

每次輸入的內(nèi)容一定,輸出的結(jié)果也一定,則稱為冪等

每次輸入的內(nèi)容一定,輸出的結(jié)果不一定,則不是冪等

若某個(gè)操作是冪等的,則意味著可以進(jìn)行緩存,因此

(5)GET 可以被緩存,POST不能被緩存

其他方法

由于日常大部分使用的是GET和POST,其他方法就簡單進(jìn)行介紹

PUT:與POST相似,但具有冪等性,一般用于更新

DELETE:刪除服務(wù)器指定資源

OPTIONS:返回服務(wù)器所支持的請(qǐng)求方法

HEAD:類似于GET,但響應(yīng)體不返回,只返回響應(yīng)頭

TRACE:回顯服務(wù)器端收到的請(qǐng)求,測(cè)試時(shí)會(huì)使用到

CONNECT:預(yù)留,暫無使用

這些方法的 HTTP 請(qǐng)求可以使用 ajax 進(jìn)行構(gòu)造,也可以使用一些第三方工具

header

header得到整體格式是 鍵值對(duì) 結(jié)構(gòu)

每個(gè)鍵值對(duì)占一行,鍵值對(duì)之間用冒號(hào)分割,每組屬性之間使用換行(\n)分割?

報(bào)頭的種類有很多,我們先學(xué)習(xí)一些常見的

Host

表示?服務(wù)器主機(jī)的地址和端口號(hào)

如:Host: www.baidu.com

Content-Length

表示?body 中的數(shù)據(jù)長度,通過 Content-Length 來處理 粘包問題,HTTP是基于 TCP 的,當(dāng)連續(xù)傳輸多個(gè) HTTP 數(shù)據(jù)報(bào)時(shí),此時(shí)接收方的接收緩沖區(qū)里就會(huì)積累多個(gè)包的數(shù)據(jù),應(yīng)用程序在讀取這些數(shù)據(jù)的時(shí)候需要明確包之間的邊界,若是沒有 body 的請(qǐng)求或響應(yīng),則直接使用 空行 作為分割符;若有 body,空行就不再是結(jié)束標(biāo)記,而是從空行開始讀取 body,而 body 要讀取多長,就取決于 Content-Length

Content-Type

表示 body 中的數(shù)據(jù)格式

請(qǐng)求中常用的數(shù)據(jù)格式有:

application/x-www-urlencoded:

form表單提交的數(shù)據(jù)格式,此時(shí)body的格式形如:

id=1&username=zhangsan

application/json:

數(shù)據(jù)為json,body格式形如:

{"id":1,"username":"zhangsan"}

multipart/form-data:

通常用于提交圖片或文件

響應(yīng)中常用的數(shù)據(jù)格式有:

text/plain:純文本格式

text/html:html格式

text/css:css格式

application/javascript:js格式

application/json:json格式

image/png:png格式

....

User-Agent(簡稱UA)

表示瀏覽器/操作系統(tǒng)的屬性,描述了用戶使用什么樣的設(shè)備上網(wǎng),如:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

其中,?Windows NT 10.0; Win64; x64 表示操作系統(tǒng)信息,AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 表示瀏覽器信息

Referer

表示這個(gè)頁面是從哪個(gè)頁面跳轉(zhuǎn)過來的,如:

Referer: https://gitee.com/Deepgreen

若直接在瀏覽器中輸入 URL,或直接通過收藏夾訪問頁面時(shí)沒有 referer 的?

Cookie

Cookie 中存儲(chǔ)了一個(gè)字符串,這個(gè)數(shù)據(jù)可能是客戶端(網(wǎng)頁)自行通過JS寫入的,也可能來自服務(wù)器(服務(wù)器在HTTP響應(yīng)的header中通過 Set-Cookie 字段給瀏覽器返回?cái)?shù)據(jù)),其本質(zhì)上是一個(gè)瀏覽器本地持久化存儲(chǔ)數(shù)據(jù)的機(jī)制,往往可以通過這個(gè)字段實(shí)現(xiàn) "身份標(biāo)識(shí)" 的功能

HTTP 請(qǐng)求中的 Cookie 字段,就是把本地存儲(chǔ)的 Cookie 信息發(fā)送到服務(wù)器,而 HTTP 響應(yīng)中會(huì)有一個(gè) Set-Cookie 字段,就是服務(wù)器告訴瀏覽器要在本地保存哪些信息

Cookie是從哪里來的?到哪里去?

是服務(wù)器返回給瀏覽器的,通常是首次訪問或登錄成功時(shí)返回給瀏覽器的,瀏覽器會(huì)將Cookie存儲(chǔ)在本地主機(jī)的硬盤上,后續(xù)每次訪問服務(wù)器都會(huì)帶上 Cookie,不同的客戶端,保存的 Cookie 是不同的,即使是同一個(gè)主機(jī),使用不同的瀏覽器,Cookie大概率也是不同的

Cookie中存儲(chǔ)的是什么?

存儲(chǔ)的是鍵值對(duì)格式的數(shù)據(jù),其中的鍵和值都是我們自行定義的,和 query string 類似

Cookie在瀏覽器是如何組織的?

Cookie在硬盤中保存,按照不同的域名為維度分別進(jìn)行存儲(chǔ),如瀏覽器訪問百度,會(huì)有一組 Cookie,而訪問gitee,又會(huì)有一組Cookie

Cookie的用途是什么?

用于在客戶端保存數(shù)據(jù),其中最主要的就是保存用戶的身份標(biāo)識(shí),服務(wù)器就可以通過標(biāo)識(shí)來區(qū)分用戶了,但一些敏感信息,如用戶密碼,不會(huì)在 Cookie 保存(不安全)

正文(body)?

正文中的內(nèi)容格式與 header中的Content-Type 密切相關(guān),大家可以通過抓包來進(jìn)行觀察

狀態(tài)碼(status code)

狀態(tài)碼用于HTTP響應(yīng)中,表示訪問一個(gè)頁面的結(jié)果(訪問成功,或是失敗,或是其他情況)

接下來,我們來了解常見的狀態(tài)碼:

200 OK

這是最常見的狀態(tài)碼,表示訪問成功

我們通過抓包抓到的大部分結(jié)果都是 200,如:

404 Not Found

表示沒有找到資源

在瀏覽器中輸入一個(gè)URL,目的是為了訪問對(duì)方服務(wù)器的一個(gè)資源,如果這個(gè)URL標(biāo)識(shí)的資源不存在,則會(huì)出現(xiàn) 404,如:

?

403 Forbidden

表示訪問被拒絕,有的頁面通常需要用戶具有一定的權(quán)限才能訪問(例如 登錄后才能進(jìn)行訪問),若用戶沒有進(jìn)行登錄直接訪問,就可能會(huì)見到 403,如:

?

405 Method Not Allowed

表示方法不被允許,在前面我們學(xué)習(xí)了HTTP中所支持的方法,如 GET、POST等,但訪問的服務(wù)器不一定都支持所有的方法,如,服務(wù)器只支持 GET 請(qǐng)求,但是卻發(fā)送了 POST請(qǐng)求:

500 Internal Server Error

表示服務(wù)器出現(xiàn)內(nèi)部錯(cuò)誤,一般是服務(wù)器的代碼執(zhí)行過程中遇到一些特殊情況(服務(wù)器異常崩潰)

例如:

@GetMapping("/test")

public String test() {

int a = 1 / 0;

return "test";

}

504 Getway Timeout

表示訪問服務(wù)器超時(shí),當(dāng)服務(wù)器負(fù)載較大時(shí),服務(wù)器處理單條請(qǐng)求時(shí)消耗的時(shí)間就會(huì)很長,就可能會(huì)導(dǎo)致出現(xiàn)超時(shí)的情況(例如 在進(jìn)行"秒殺"活動(dòng)時(shí)就可能會(huì)出現(xiàn))

302 Move temporarily

表示臨時(shí)重定向

什么是重定向?

重定向(Redirect):當(dāng)用戶請(qǐng)求訪問一個(gè)網(wǎng)頁或者資源時(shí),服務(wù)器將其重定向到另一個(gè)位置或者另一個(gè)URL的過程,通常是由服務(wù)器端完成的,通過向用戶返回特定的HTTP狀態(tài)碼和新的URL來實(shí)現(xiàn)

例如我們?cè)谶M(jìn)行登錄時(shí),當(dāng)?shù)卿洺晒缶蜁?huì)自動(dòng)跳轉(zhuǎn)到主頁

header 中會(huì)包含一個(gè) Location 字段,表示要跳轉(zhuǎn)到哪個(gè)頁面

301 Moved Permanently

表示永久重定向,當(dāng)瀏覽器接收到這種響應(yīng)時(shí),后續(xù)的請(qǐng)求都會(huì)被自動(dòng)改成新的地址,若是永久重定向,瀏覽器就會(huì)將重定向的結(jié)果記錄下來,后續(xù)再次訪問,就可以直接訪問重定向的目標(biāo)地址,不必再多進(jìn)行一次跳轉(zhuǎn)了

301 也是通過 Location 字段來表示要重定向到的新地址

狀態(tài)碼總結(jié):

狀態(tài)碼類別描述1XXInformational(信息性狀態(tài)碼)接收的請(qǐng)求正在處理2XXSuccess(成功狀態(tài)碼)請(qǐng)求正常處理完畢3XXRedirection(重定向狀態(tài)碼)需要進(jìn)行附加操作以完成請(qǐng)求4XXClient Error(客戶端錯(cuò)誤狀態(tài)碼)服務(wù)器無法處理請(qǐng)求5XXServer Error(服務(wù)器錯(cuò)誤狀態(tài)碼)服務(wù)器處理請(qǐng)求出錯(cuò)

構(gòu)造 HTTP 請(qǐng)求

可以通過瀏覽器地址直接構(gòu)造 GET 請(qǐng)求,如:直接在瀏覽器地址欄輸入http://127.0.0.18080/index.html

form 表單

form(表單)是HTML中的一個(gè)常用標(biāo)簽,可以用于向服務(wù)器發(fā)送GET或POST請(qǐng)求

例如:發(fā)送get請(qǐng)求

form 中的重要參數(shù):

action:構(gòu)造的HTTP請(qǐng)求的URL

method:構(gòu)造的HTTP請(qǐng)求的方法是GET還是POST(form只支持 GET 和 POST)

input 的重要參數(shù):

type:輸入框的類型,text 表示文本,password 表示密碼,submit表示提交按鈕...

name:表示構(gòu)造出的HTTP請(qǐng)求的 query string 的 key,query string 的 value就是輸入框中輸入的內(nèi)容

value:input標(biāo)簽的值,對(duì)于 type 為 submit 類型來說,value 就對(duì)應(yīng)了按鈕上顯示的文本

?頁面展示效果:

填入數(shù)據(jù),并點(diǎn)擊提交:

構(gòu)造的HTTP請(qǐng)求?

?form 與 http 請(qǐng)求之間的對(duì)應(yīng)關(guān)系:

若想要發(fā)送 POST 請(qǐng)求,則只需要將 form 中的 method 修改為 POST

此時(shí)再次填入數(shù)據(jù),并提交:

此時(shí)數(shù)據(jù)從 query string 移動(dòng)到了 body

ajax

除了可以通過瀏覽器地址欄構(gòu)造 GET 請(qǐng)求,form 表單構(gòu)造 GET 和 POST 請(qǐng)求外,還可以通過 ajax 構(gòu)造 HTTP 請(qǐng)求,且功能更加強(qiáng)大

ajax(Asynchronous JavaScript and XML)是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。通過在后臺(tái)與服務(wù)器進(jìn)行數(shù)據(jù)交換,可以實(shí)現(xiàn)網(wǎng)頁的異步更新,使得頁面可以在不重新加載整個(gè)頁面的情況下更新部分內(nèi)容。其特點(diǎn)是可以不需要 刷新頁面 或 頁面跳轉(zhuǎn) 就能夠進(jìn)行數(shù)據(jù)傳輸

?此處使用的是 jquery 的 ajax,而不是原生 ajax

success 申明了一個(gè)回調(diào)函數(shù),會(huì)在服務(wù)器響應(yīng)返回到瀏覽器時(shí)觸發(fā)該回調(diào)函數(shù)

若想要發(fā)送 POST 請(qǐng)求,需要設(shè)置 contentType(body 中的數(shù)據(jù)格式) 和 data(body 中的內(nèi)容)

例如:發(fā)送 application/json 數(shù)據(jù)

第三方工具

我們可以通過第三方工具很容易地構(gòu)造出HTTP請(qǐng)求,如 postman、Apifox等工具

在這里,我們使用 postman 作為示例:

發(fā)送 GET 請(qǐng)求:

?

發(fā)送 POST 請(qǐng)求:

柚子快報(bào)邀請(qǐng)碼778899分享:網(wǎng)絡(luò) 網(wǎng)絡(luò)協(xié)議 HTTP詳解

http://yzkb.51969.com/

相關(guān)閱讀

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19362932.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄