国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文

這篇具有很好參考價(jià)值的文章主要介紹了【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

各位讀者好, 我是小陳, 這是我的個(gè)人主頁(yè), 希望我的專欄能夠幫助到你:
?? JavaSE基礎(chǔ): 基礎(chǔ)語(yǔ)法, 類和對(duì)象, 封裝繼承多態(tài), 接口, 綜合小練習(xí)圖書(shū)管理系統(tǒng)等
?? Java數(shù)據(jù)結(jié)構(gòu): 順序表, 鏈表, 堆, 二叉樹(shù), 二叉搜索樹(shù), 哈希表等
?? JavaEE初階: 多線程, 網(wǎng)絡(luò)編程, TCP/IP協(xié)議, HTTP協(xié)議, Tomcat, Servlet, Linux, JVM等(正在持續(xù)更新)

前幾篇文章介紹了傳輸層的 TCP 協(xié)議的幾大重要機(jī)制, 認(rèn)識(shí)了傳輸層協(xié)議之后, 本片開(kāi)始陸續(xù)介紹應(yīng)用層的 HTTP 協(xié)議的相關(guān)知識(shí)

本篇主要介紹 HTTP 請(qǐng)求報(bào)文和應(yīng)答報(bào)文中需要掌握和認(rèn)識(shí)的知識(shí)點(diǎn)


提示:是正在努力進(jìn)步的小菜鳥(niǎo)一只,如有大佬發(fā)現(xiàn)文章欠佳之處歡迎批評(píng)指點(diǎn)~ 廢話不多說(shuō),直接上干貨!

一、認(rèn)識(shí) HTTP 協(xié)議

1, 什么是 HTTP 協(xié)議

HTTP (“超文本傳輸協(xié)議”) 是一種應(yīng)用非常廣泛的 應(yīng)用層協(xié)議, 我們平時(shí)打開(kāi)一個(gè)網(wǎng)站, 就是通過(guò) HTTP 協(xié)議來(lái)傳輸數(shù)據(jù)的
HTTP 往往是基于傳輸層的 TCP 協(xié)議實(shí)現(xiàn)的, (HTTP1.0, HTTP1.1(最主流), HTTP2.0 均為T(mén)CP, HTTP3 基于 UDP 實(shí)現(xiàn))

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

這個(gè)響應(yīng)結(jié)果被瀏覽器解析之后, 就展示成我們看到的頁(yè)面內(nèi)容, (這個(gè)過(guò)程中瀏覽器可能會(huì)給服務(wù)器發(fā)送多個(gè) HTTP 請(qǐng)求, 服務(wù)器會(huì)對(duì)應(yīng)返回多個(gè)響應(yīng), 這些響應(yīng)里就包含了頁(yè)面 HTML, CSS, JavaScript, 圖片, 字體等信息).

HTTP 協(xié)議是一問(wèn)一答式的, 一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)響應(yīng)


2, HTTP 協(xié)議的報(bào)文格式

我們使用 fiddler 抓包工具, 打開(kāi) CSDN 網(wǎng)站時(shí)就可以看到各種各樣的包

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

先初步觀察請(qǐng)求/響應(yīng)報(bào)文的格式, 然后再詳細(xì)介紹

HTTP 請(qǐng)求報(bào)文的格式 :

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

  • 首行: [方法] + [url] + [版本號(hào)]
  • Header: 請(qǐng)求的屬性, 冒號(hào)+空格分割的鍵值對(duì), 每組屬性之間使用\n分隔, 遇到空行表示 Header 部分結(jié)束
  • Body: 空行后面的內(nèi)容都是 Body . Body 允許為空字符串

HTTP 響應(yīng)報(bào)文的格式 :

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

  • 首行: [版本號(hào)] + [狀態(tài)碼] + [狀態(tài)碼解釋]
  • Header: 請(qǐng)求的屬性, 冒號(hào)分割的鍵值對(duì), 每組屬性之間使用\n分隔, 遇到空行表示 Header 部分結(jié)束
  • Body: 空行后面的內(nèi)容都是 Body . Body 允許為空字符串

這里看到正文部分是亂碼, 是因?yàn)? 為了減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量, 節(jié)省帶寬, 正文部分往往是被壓縮的, 點(diǎn)擊這里可以看到解壓縮的正文,
然后再用記事本打開(kāi)
【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼
【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

所以, 當(dāng)瀏覽器打開(kāi)一個(gè)網(wǎng)站時(shí), 實(shí)際上就是給該網(wǎng)站的服務(wù)器發(fā)送了一個(gè)請(qǐng)求, 然后返回了一個(gè)響應(yīng), 這個(gè)響應(yīng)就攜帶了這個(gè)網(wǎng)站的頁(yè)面, 當(dāng)然還有其他的響應(yīng), 可能包括 CSS, JavaScript, 音視頻等資源


二、HTTP 請(qǐng)求報(bào)文

1, 認(rèn)識(shí)方法

HTTP 請(qǐng)求報(bào)文中的首行的第一個(gè)屬性就標(biāo)識(shí)了: 這個(gè)請(qǐng)求使用的方法, 方法描述了這個(gè)請(qǐng)求打算干嘛

例如剛剛我們?cè)L問(wèn) CSDN 頁(yè)面的請(qǐng)求的方法就是 GET

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

HTTP 協(xié)議常用的方法如圖所示 :

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

絕大多數(shù)場(chǎng)景使用的都是 GET 和 POST ! ! ! 只需要重點(diǎn)認(rèn)識(shí)這兩個(gè)方法即可, GET 方法表示: 從服務(wù)器里獲取, POST 方法表示: 往服務(wù)器里提交


1.1, GET 和 POST 辨析(重點(diǎn))

GET 是最常用的 HTTP 方法. 常用于獲取服務(wù)器上的某個(gè)資源, 在瀏覽器中訪問(wèn)網(wǎng)站, 此時(shí)瀏覽器就會(huì)發(fā)送出一個(gè) GET 請(qǐng)求, 另外, HTML 中的 link, img, script 等標(biāo)簽也會(huì)觸發(fā) GET 請(qǐng)求, 或者使用 JavaScript 中的 ajax 也能構(gòu)造 GET 請(qǐng)求

POST 多用于提交用戶輸入的數(shù)據(jù)給服務(wù)器(例如登陸頁(yè)面), 或者長(zhǎng)傳文件. 通過(guò) HTML 中的 form 標(biāo)簽可以構(gòu)造 POST 請(qǐng)求, 或者使用 JavaScript 的 ajax 也可以構(gòu)造 POST 請(qǐng)求

我們看一下登錄 CSDN 時(shí), 使用 fiddler 抓到的包
【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

可以看到, POST 和 GET 不同, POST 請(qǐng)求的報(bào)文是有正文的, 因?yàn)榈顷憰r(shí)需要提交相關(guān)材料(比如密碼, 此處是被加密過(guò)的)

  • 提問(wèn) : GET 和 POST 有什么區(qū)別呢?
    本質(zhì)上沒(méi)有區(qū)別 :
    1, 不同的方法只是代表不同的語(yǔ)義, 但不一定嚴(yán)格遵守
    2, 使用 GET 的場(chǎng)景一般都可以使用 POST 代替, 這二者一般是可以相互代替的
    3, GET 也可以有正文, POST 也可以沒(méi)有正文, 并非絕對(duì)
    使用習(xí)慣上有區(qū)別 :
    1, GET 習(xí)慣用來(lái)表示"獲取數(shù)據(jù)", POST 習(xí)慣表示"提交數(shù)據(jù)"
    2, GET 一般沒(méi)有正文, 需要攜帶的數(shù)據(jù)可以寫(xiě)在 UR L的 query string 中, POST 一般有正文
    3, GET 一般被設(shè)計(jì)成"冪等"的, POST 無(wú)要求
    4, GET 可以被緩存(前提是冪等), POST 不可以

這里的"冪等"是指 : 多次請(qǐng)求得到的響應(yīng)一致, 這也是可以被緩存的原因
雖然官方標(biāo)準(zhǔn)建議 GET 設(shè)計(jì)成冪等, 但并不絕對(duì), 比如現(xiàn)在很多網(wǎng)站都有"猜你喜歡"功能, 就是根據(jù)用戶歷史訪問(wèn)記錄實(shí)時(shí)做出更新的

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼


1.2, 其他方法

PUT : 與 POST 相似,只是具有冪等特性,一般用于更新
DELETE : 刪除服務(wù)器指定資源
OPTIONS : 返回服務(wù)器所支持的請(qǐng)求方法
HEAD : 類似于GET,只不過(guò)響應(yīng)體不返回,只返回響應(yīng)頭
TRACE : 回顯服務(wù)器端收到的請(qǐng)求,測(cè)試的時(shí)候會(huì)用到這個(gè)
CONNECT : 預(yù)留,暫無(wú)使用


2, 認(rèn)識(shí) URL

請(qǐng)求報(bào)文中的第二個(gè)屬性就是 URL, 如圖

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

URL (Uniform Resource Locator 統(tǒng)一資源定位符), 就是平時(shí)俗稱的"網(wǎng)址", 互聯(lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它

上圖中的URL中有很多信息被省略了, 完整的 URL 應(yīng)該如下圖所示 :

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

  • 協(xié)議方案名: 常見(jiàn)的有 http 和 https, 也有其他的類型.(例如訪問(wèn) mysql 時(shí)用的jdbc:mysql )
  • 登陸信息: 現(xiàn)在的網(wǎng)站進(jìn)行身份認(rèn)證一般不再通過(guò) URL 進(jìn)行了, 一般都會(huì)省略
  • 服務(wù)器地址: 此處是一個(gè) “域名”, 域名會(huì)通過(guò) DNS 系統(tǒng)解析成一個(gè)具體的 IP 地址
  • 端口號(hào): 上面的 URL 中端口號(hào)被省略了, 當(dāng)端口號(hào)省略的時(shí)候, 瀏覽器會(huì)根據(jù)協(xié)議類型自動(dòng)決定使用哪個(gè)端口 (例如 http 協(xié)議默認(rèn)使用 80 端口, https 協(xié)議默認(rèn)使用 443 端口)
  • 帶層次的文件路徑: 標(biāo)識(shí)要訪問(wèn)的服務(wù)器的哪一個(gè)資源
  • 查詢字符串(query string): 具體的表示了請(qǐng)求的資源是什么, 本質(zhì)是一個(gè)鍵值對(duì)結(jié)構(gòu). 鍵值對(duì)之間使用 & 分隔, 鍵和值之間使用 = 分隔.
  • 片段標(biāo)識(shí): 主要用于頁(yè)面內(nèi)跳轉(zhuǎn)

3, 認(rèn)識(shí) Header

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

其中鍵和值之間用冒號(hào)+空格分隔, Header 中的鍵值對(duì)可以用 N 個(gè), 沒(méi)有限制, 大部分鍵值對(duì)都是由 HTTP 協(xié)議規(guī)定的, 還有一部分是允許程序員自定義的

接下來(lái)介紹一部分鍵值對(duì)的含義


3.1, Host

標(biāo)識(shí)當(dāng)前要訪問(wèn)的服務(wù)器的地址(和端口)

在 URL中雖然已經(jīng)寫(xiě)入了域名, 通常情況下這兩個(gè)是一致的, 但如果不是直接訪問(wèn), 而是通過(guò)代理訪問(wèn)服務(wù)器, 這二者就不同了


3.2, Content-Length

標(biāo)識(shí) Body 的長(zhǎng)度(單位是字節(jié))

如果是 GET 方法獲取的請(qǐng)求, 一般沒(méi)有 Body, 所以就不顯示這個(gè)鍵值對(duì)了


3.3 Content-Type

標(biāo)識(shí) Body 中的數(shù)據(jù)格式(和字符集)

如果是 GET 方法獲取的請(qǐng)求, 一般沒(méi)有 Body, 所以就不顯示這個(gè)鍵值對(duì)了

如果是 POST 或其他的方法, Content-Type 一般是以下兩種 :
1, application/json, 是瀏覽器和 HTTP 服務(wù)器交互最常見(jiàn)的一種格式,正文中形如 JavaScript 中的對(duì)象
2, application/x-www-from-urlencoded, 是 HTML 中的 from 表單提交數(shù)據(jù)生成的, 正文中形如 URL 中的 query string

上述兩種格式一般在請(qǐng)求報(bào)文中使用, 如果是響應(yīng)報(bào)文, 數(shù)據(jù)的格式還有上文提到過(guò)的 text/html, text/css, application/javascript, image/jpg等等


3.4, User-Agent

標(biāo)識(shí)用戶的客戶端操作系統(tǒng)型號(hào)和版本, 以及使用的瀏覽器的版本

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

User-Agent 的設(shè)計(jì)是一個(gè)歷史遺留問(wèn)題, 如今的作用大不如前, 不過(guò)至少可以用來(lái)區(qū)分用戶是使用電腦/手機(jī)/平板


3.5, Referer

標(biāo)識(shí)當(dāng)前頁(yè)面從哪跳轉(zhuǎn)過(guò)來(lái)的

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼
(如果直接在地址欄輸入 URL 或者通過(guò)收藏夾進(jìn)行訪問(wèn), 是沒(méi)有 Referer 的)

3.6, Cookie(重點(diǎn))

Cookie 是瀏覽器在本地存儲(chǔ)用戶自定義數(shù)據(jù)的一種關(guān)鍵機(jī)制

如下圖所示, Cookie 里有很多鍵值對(duì)(數(shù)據(jù)可以由程序員自定義), 鍵值對(duì)之間用分號(hào)分割, 鍵和值之間用等號(hào)分割, 具體這些鍵值對(duì)表示的含義是什么, 咱不知道, 只有開(kāi)發(fā)這個(gè)網(wǎng)站的程序員知道

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼
瀏覽器作為客戶端, 需要向該網(wǎng)站的服務(wù)器發(fā)送請(qǐng)求來(lái)獲取資源, 顯然服務(wù)器是需要存儲(chǔ)一些數(shù)據(jù)的, 而瀏覽器這邊也需要存儲(chǔ)一些數(shù)據(jù), 比如說(shuō)用戶的登錄信息

既然客戶端這邊要存儲(chǔ)數(shù)據(jù), 能否直接存在用戶的硬盤(pán)上? 一定不可以, 不能允許網(wǎng)頁(yè)操作本機(jī)的硬盤(pán), 文件系統(tǒng), 否則如果被惡意網(wǎng)站植入病毒, 硬盤(pán)中的數(shù)據(jù)都可能受到威脅, 所以瀏覽器是禁止網(wǎng)頁(yè)訪問(wèn)硬盤(pán)的

Cookie 就是解決這一問(wèn)題的重要機(jī)制, 瀏覽器允許網(wǎng)頁(yè)把重要的信息存儲(chǔ)在各自網(wǎng)頁(yè)的 Cookie 中, 同一個(gè)網(wǎng)站(主頁(yè)和子頁(yè))共享一份 Cookie

  • 1, Cookie 從哪里來(lái)?
    Cookie (中存儲(chǔ)的數(shù)據(jù))從服務(wù)器來(lái): 第一次登陸一個(gè)網(wǎng)站的時(shí)候, 服務(wù)器會(huì)返回一個(gè)響應(yīng), 在這個(gè)響應(yīng)報(bào)文中, 通過(guò) Set-Cookie 把需要存儲(chǔ)的值返回給客戶端, 客戶端進(jìn)行存儲(chǔ)

比如在我的 gitee 主頁(yè)上可以查看已經(jīng)存儲(chǔ)的 Cookie, 方便觀察我們把這些都刪除

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼
【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

刪除 Cookie 之后, 其中存儲(chǔ)的有關(guān)用戶登錄的信息就沒(méi)了, 有些網(wǎng)站可能會(huì)主動(dòng)退出登錄, 或者自動(dòng)重新登陸, 通過(guò) fiddler 可以抓包看到登陸時(shí)的響應(yīng)報(bào)文中確實(shí)有 Set-Cookie 字段

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

里面包含了一個(gè) gitee-session-n 這樣的屬性, 屬性值是一串很長(zhǎng)的加密之后的信息. 這個(gè)信息就是用戶當(dāng)前登陸的身份標(biāo)識(shí). 也稱為 “令牌(token)”

  • 2, Cookie 到哪里去?
    Cookie 要回到服務(wù)器, 當(dāng)客戶端收到 Set-Cookie 中的數(shù)據(jù)后, 后續(xù)每次請(qǐng)求網(wǎng)頁(yè)的時(shí)候, 給服務(wù)器發(fā)送的請(qǐng)求報(bào)文中都有一個(gè) Cookie 字段, 相當(dāng)于把 Cookie 里面的值再帶給服務(wù)器

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

請(qǐng)求你中的 Cookie 字段也包含了一個(gè) gitee-session-n 屬性, 里面的值和剛才服務(wù)器返回的值相同, 后續(xù)只要訪問(wèn) gitee 這個(gè)網(wǎng)站, 就會(huì)一直帶著這個(gè)令牌, 直到令牌過(guò)期/下次重新登陸

  • Cookie 有什么用?
    Cookie 是一瀏覽器客戶端在本地存儲(chǔ)用戶自定義數(shù)據(jù)的一種機(jī)制, 比如存儲(chǔ)用戶的身份信息, 讓服務(wù)器通過(guò) Cookie 來(lái)識(shí)別用戶身份

三、HTTP 響應(yīng)報(bào)文

1, 認(rèn)識(shí)狀態(tài)碼

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

狀態(tài)碼表示訪問(wèn)一個(gè)頁(yè)面的結(jié)果 (是訪問(wèn)成功, 還是失敗, 還是其他的一些情況…), 接下來(lái)簡(jiǎn)單介紹一些常見(jiàn)的狀態(tài)碼


序號(hào) 分類 描述
1xx 信息性 服務(wù)器收到請(qǐng)求, 正在處理
2xx 成功 請(qǐng)求接收成功, 處理完畢
3xx 重定向 需要進(jìn)一步操作以完成請(qǐng)求
4xx 客戶端錯(cuò)誤 請(qǐng)求包含語(yǔ)法錯(cuò)誤或無(wú)法完成請(qǐng)求
5xx 服務(wù)器錯(cuò)誤 服務(wù)器處理請(qǐng)求出錯(cuò)
  • 200 OK
    這是一個(gè)最常見(jiàn)的狀態(tài)碼, 表示訪問(wèn)成功, 一般用于GET與POST請(qǐng)求

  • 404 Not Found
    找不到資源, 服務(wù)器無(wú)法根據(jù)客戶端的請(qǐng)求找到資源(網(wǎng)頁(yè)), 通過(guò)此代碼, 網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請(qǐng)求的資源無(wú)法找到"的個(gè)性頁(yè)面
    (瀏覽器輸入一個(gè) URL, 目的就是為了訪問(wèn)對(duì)方服務(wù)器上的一個(gè)資源. 如果這個(gè) URL 標(biāo)識(shí)的資源不存在, 那么就會(huì)出現(xiàn) 404)
    【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

  • 403 Forbidden
    拒絕訪問(wèn), 有的頁(yè)面通常需要用戶具有一定的權(quán)限才能訪問(wèn)(比如登陸后才能訪問(wèn)), 如果用戶沒(méi)有登陸直接訪問(wèn), 就容易見(jiàn)到 403.
    【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼

  • 405 Method Not Allowed
    方法不支持, 前面介紹了 HTTP 中所支持的方法( GET, POST, PUT, DELETE 等), 但是對(duì)方的服務(wù)器不一定都支持所有的方法(或者不允許用戶使用一些其他的方法)

  • 500 Internal Server Error
    服務(wù)器內(nèi)部出錯(cuò), 可能是服務(wù)器端的代碼出 bug 了或者異常崩潰了, 一般在訪問(wèn)主流網(wǎng)站時(shí)很少見(jiàn)到這個(gè)狀態(tài)碼, 但后端程序員在寫(xiě)代碼的時(shí)候可能比較常見(jiàn)

  • 504 Gateway Timeout
    訪問(wèn)超時(shí), 服務(wù)器訪問(wèn)量大, 無(wú)法及時(shí)處理請(qǐng)求并返回響應(yīng)

  • 301 Moved Permanently
    永久重定向, 請(qǐng)求的資源已被永久的移動(dòng)到新的 URI, 返回信息會(huì)包括新的 URI, 瀏覽器會(huì)自動(dòng)定向到新 URI, 今后任何新的請(qǐng)求都應(yīng)使用新的 URI 代替

重定向就是值訪問(wèn)舊的資源地址時(shí), 自動(dòng)被引導(dǎo)到新的資源地址, 俗稱頁(yè)面跳轉(zhuǎn)

  • 302 Found
    臨時(shí)重定向, 資源只是臨時(shí)被移動(dòng), 下一次請(qǐng)求時(shí)是否被移動(dòng), 不一定, 所以客戶端應(yīng)繼續(xù)使用原有 URI

在登陸頁(yè)面中經(jīng)常會(huì)見(jiàn)到 302, 用于實(shí)現(xiàn)登陸成功后自動(dòng)跳轉(zhuǎn)到主頁(yè).
響應(yīng)報(bào)文的 header 部分會(huì)包含一個(gè) Location 字段, 表示要跳轉(zhuǎn)到哪個(gè)頁(yè)面
【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼


總結(jié)

以上就是本篇的全部?jī)?nèi)容, 主要介紹了如何 HTTP 協(xié)議的請(qǐng)求和響應(yīng)報(bào)文的格式, 重點(diǎn)介紹了 HTTP 方法中的 GET 和 POST 的辨析, 以及 Header 中有關(guān) Cookie 的相關(guān)知識(shí)

如果本篇對(duì)你有幫助,請(qǐng)點(diǎn)贊收藏支持一下,小手一抖就是對(duì)作者莫大的鼓勵(lì)啦??????~


上山總比下山辛苦
下篇文章見(jiàn)

【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文,JavaEE初階,http,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò),Cookie,狀態(tài)碼
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-518548.html

到了這里,關(guān)于【HTTP 協(xié)議1】圖文詳解 HTTP 請(qǐng)求和應(yīng)答報(bào)文的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • HTTP協(xié)議 | 一文詳解HTTP報(bào)文結(jié)構(gòu)

    HTTP協(xié)議 | 一文詳解HTTP報(bào)文結(jié)構(gòu)

    目錄 ?? HTTP/HTTPS簡(jiǎn)介 ?? HTTP工作原理 HTTP三點(diǎn)注意事項(xiàng) 1. HTTP是無(wú)連接的 2. HTTP是媒體獨(dú)立的 3. HTTP是無(wú)狀態(tài)的 HTTPS 作用 ?? HTTP消息結(jié)構(gòu) HTTP請(qǐng)求消息 1. 請(qǐng)求行 2. 請(qǐng)求頭 3. 空行 4. 請(qǐng)求數(shù)據(jù) HTTP請(qǐng)求實(shí)例 HTTP請(qǐng)求GET和POST的區(qū)別 1. 傳輸數(shù)據(jù)的方式不同 2. 傳輸數(shù)據(jù)的大小不同 3

    2024年02月03日
    瀏覽(20)
  • HTTP 協(xié)議詳解(圖文介紹)

    當(dāng)今web程序的開(kāi)發(fā)技術(shù)真是百家爭(zhēng)鳴,ASP.NET, PHP, JSP,Perl, AJAX 等等。 無(wú)論Web技術(shù)在未來(lái)如何發(fā)展,理解Web程序之間通信的基本協(xié)議相當(dāng)重要, 因?yàn)樗屛覀兝斫饬薟eb應(yīng)用程序的內(nèi)部工作. 本文將對(duì)HTTP協(xié)議進(jìn)行詳細(xì)的實(shí)例講解,內(nèi)容較多,希望大家耐心看。也希望對(duì)大家的開(kāi)

    2024年02月08日
    瀏覽(32)
  • 10000字講解TCP協(xié)議(確認(rèn)應(yīng)答,超時(shí)重傳,三次握手,四次揮手等等眾多機(jī)制)以及UDP協(xié)議(UDP報(bào)文,校驗(yàn)和)

    10000字講解TCP協(xié)議(確認(rèn)應(yīng)答,超時(shí)重傳,三次握手,四次揮手等等眾多機(jī)制)以及UDP協(xié)議(UDP報(bào)文,校驗(yàn)和)

    UDP它是屬于TCP/IP協(xié)議族中的一種。是無(wú)連接的協(xié)議,發(fā)送數(shù)據(jù)前不需要建立連接,因?yàn)椴恍枰⑦B接,所以可以在網(wǎng)絡(luò)上以任何可能的路徑傳輸,至于有沒(méi)有傳輸?shù)侥康牡兀琔DP是不關(guān)心的,所以,UDP它是天然支持廣播的,就類似學(xué)校的廣播,只需要將聲音傳遞給每個(gè)學(xué)生即

    2024年01月21日
    瀏覽(30)
  • 第1關(guān):HTTP 基本請(qǐng)求與應(yīng)答

    第1關(guān):HTTP 基本請(qǐng)求與應(yīng)答

    創(chuàng)作不易,賞個(gè)贊吧?。?! 任務(wù)描述 本關(guān)任務(wù):能分析出 HTTP 請(qǐng)求與應(yīng)答中各字段的作用及取值。 相關(guān)知識(shí) 為了完成本關(guān)任務(wù),你需要掌握: 了解 HTTP協(xié)議; 識(shí)別 HTTP 請(qǐng)求報(bào)文構(gòu)成及各字段含義; 識(shí)別 HTTP 響應(yīng)報(bào)文構(gòu)成及各字段含義; Wireshark 中加載保存的報(bào)文文件。

    2024年02月04日
    瀏覽(62)
  • HTTP協(xié)議請(qǐng)求詳解

    HTTP協(xié)議請(qǐng)求詳解

    ??????今天給大家分享的是 HTTP 請(qǐng)求部分的基礎(chǔ)知識(shí)。 清風(fēng)的CSDN博客 ?????????希望我的文章能對(duì)你有所幫助,有不足的地方還請(qǐng)各位看官多多指教,大家一起學(xué)習(xí)交流! ??????動(dòng)動(dòng)你們發(fā)財(cái)?shù)男∈?,點(diǎn)點(diǎn)關(guān)注點(diǎn)點(diǎn)贊!在此謝過(guò)啦!哈哈哈!?????? 目

    2024年01月17日
    瀏覽(24)
  • 【JavaEE初階】 TCP協(xié)議詳細(xì)解析

    【JavaEE初階】 TCP協(xié)議詳細(xì)解析

    TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議。 源/目的端口號(hào):表示數(shù)據(jù)是從哪個(gè)進(jìn)程來(lái),到哪個(gè)進(jìn)程去; 32位序號(hào)/32位確認(rèn)號(hào):后面詳細(xì)講; 4位TCP報(bào)頭長(zhǎng)度:表示該TCP頭部有多少個(gè)32位bit(有多少個(gè)4字節(jié));所以

    2024年02月05日
    瀏覽(21)
  • 【JavaEE初階】TCP/IP協(xié)議(二)

    【JavaEE初階】TCP/IP協(xié)議(二)

    協(xié)議頭格式如下: 4位版本號(hào)(version):指定IP協(xié)議的版本,對(duì)于IPv4來(lái)說(shuō),就是4。IPv6就是6. 4位頭部長(zhǎng)度(header length):描述了IP報(bào)頭多長(zhǎng)。(IP報(bào)頭是變長(zhǎng)的)報(bào)頭中有一個(gè)選項(xiàng)部分 是變長(zhǎng)的。是可有可無(wú)的。 此處的單位也是四字節(jié)。 8位服務(wù)類型(Type Of Service):3位優(yōu)先

    2024年02月12日
    瀏覽(45)
  • 《二》HTTP 請(qǐng)求報(bào)文和響應(yīng)報(bào)文、請(qǐng)求方法、狀態(tài)碼

    《二》HTTP 請(qǐng)求報(bào)文和響應(yīng)報(bào)文、請(qǐng)求方法、狀態(tài)碼

    請(qǐng)求報(bào)文: 客戶端向服務(wù)器發(fā)送的請(qǐng)求信息,就叫做請(qǐng)求報(bào)文。 客戶端發(fā)送一個(gè) HTTP 請(qǐng)求到服務(wù)器,請(qǐng)求信息包含四部分:請(qǐng)求行、請(qǐng)求頭、空行、請(qǐng)求體。 請(qǐng)求行:包含三部分,分別是請(qǐng)求方法、請(qǐng)求資源的路徑、協(xié)議版本。 請(qǐng)求頭:頭信息,告訴服務(wù)器一些信息,在客

    2023年04月26日
    瀏覽(27)
  • 【JavaEE初階】網(wǎng)絡(luò)原理|認(rèn)識(shí)協(xié)議|協(xié)議分層|TCP/IP模型|封裝和分用

    【JavaEE初階】網(wǎng)絡(luò)原理|認(rèn)識(shí)協(xié)議|協(xié)議分層|TCP/IP模型|封裝和分用

    目錄 一、認(rèn)識(shí)協(xié)議 1.概念 2.作用(為什么需要協(xié)議?) 二、協(xié)議分層 1.為什么需要?絡(luò)協(xié)議的分層? 2. 協(xié)議分層是什么 3.分層帶來(lái)的好處 三、TCP/IP五層(或四層)模型 (1)物理層 (2)數(shù)據(jù)鏈路層 (3)網(wǎng)絡(luò)層 (4)傳輸層 (5)應(yīng)用層 四、封裝和分用(協(xié)議的層和層之間

    2024年04月23日
    瀏覽(20)
  • Jmeter提取協(xié)議報(bào)文、請(qǐng)求頭、請(qǐng)求體、響應(yīng)體

    參看文章: https://blog.csdn.net/qq_40308101/article/details/125545245 https://www.thinbug.com/q/34918343 https://www.cnblogs.com/peak911/p/9238738.html 1、 prev (用于后置處理器、斷言) prev 提供對(duì)當(dāng)前取樣器結(jié)果的訪問(wèn)能力 prev 映射 org.apache.jmeter.samplers 的 SampleResult 類 官方文檔: https://jmeter.apache.org/ap

    2024年02月11日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包