get請求和post請求的區別

nice1022發表於2022-03-21

HTTP協議

什麼是協議?

協議實際上是某些人,或者某些組織提前制定好的一套規範,大家都按照這個規範來,這樣可以做到溝通無障礙。


協議就是一套規範,就是一套標準。由其他人或其他組織來負責制定的。


我說的話你能聽懂,你說的話,我也能聽懂,這說明我們之間是有一套規範的,一套協議的,這套協議就是:中國普通話協議。我們都遵守這套協議,我們之間就可以溝通無障礙。

什麼是HTTP協議?

HTTP協議:是W3C制定的一種超文字傳輸協議。(通訊協議:傳送訊息的模板提前被制定好。)


W3C:


全球資訊網聯盟組織

負責制定標準的:HTTP HTML4.0 HTML5 XML DOM等規範都是W3C制定的。

全球資訊網之父:蒂姆·伯納斯·李

什麼是超文字?


超文字說的就是:不是普通文字,比如流媒體:聲音、視訊、圖片等。

HTTP協議支援:不但可以傳送普通字串,同樣支援傳遞聲音、視訊、圖片等流媒體資訊。

這種協議遊走在B和S之間。B向S發資料要遵循HTTP協議。S向B發資料同樣需要遵循HTTP協議。這樣B和S才能解耦合。


什麼是解耦合?


B不依賴S。

S也不依賴B。

耦合是物件之間有依賴關係,減少耦合,可以擴充套件軟體功能

B/S表示:B/S結構的系統(瀏覽器訪問WEB伺服器的系統)


瀏覽器 向 WEB伺服器傳送資料,叫做:請求(request)


WEB伺服器 向 瀏覽器傳送資料,叫做:響應(response)


HTTP協議包括:


請求協議

瀏覽器 向 WEB伺服器傳送資料的時候,這個傳送的資料需要遵循一套標準,這套標準中規定了傳送的資料具體格式。

響應協議

WEB伺服器 向 瀏覽器傳送資料的時候,這個傳送的資料需要遵循一套標準,這套標準中規定了傳送的資料具體格式。

HTTP協議就是提前制定好的一種訊息模板。


不管你是哪個品牌的瀏覽器,都是這麼發。

不管你是哪個品牌的WEB伺服器,都是這麼發。

FF瀏覽器 可以向 Tomcat傳送請求,也可以向Jetty伺服器傳送請求。瀏覽器不依賴具體的伺服器品牌。

WEB伺服器也不依賴具體的瀏覽器品牌。可以是FF瀏覽器,也可以是Chrome瀏覽器,可以是IE,都行。

HTTP的請求協議(B --> S)


HTTP的請求協議包括:4部分


- 請求行

- 請求頭

- 空白行

- 請求體

GET /servlet05/getServlet?username=lucy&userpwd=1111 HTTP/1.1 請求行

Host: localhost:8080 請求頭

Connection: keep-alive

sec-ch-ua: “Google Chrome”;v=“95”, “Chromium”;v=“95”, “;Not A Brand”;v=“99”

sec-ch-ua-mobile: ?0

sec-ch-ua-platform: “Windows”

Upgrade-Insecure-Requests: 1

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


Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: same-origin

Sec-Fetch-Mode: navigate

Sec-Fetch-User: ?1

Sec-Fetch-Dest: document

Referer:

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

空白行

請求體


HTTP請求協議的具體報文:POST請求


POST /servlet05/postServlet HTTP/1.1 請求行

Host: localhost:8080 請求頭

Connection: keep-alive

Content-Length: 25

Cache-Control: max-age=0

sec-ch-ua: “Google Chrome”;v=“95”, “Chromium”;v=“95”, “;Not A Brand”;v=“99”

sec-ch-ua-mobile: ?0

sec-ch-ua-platform: “Windows”

Upgrade-Insecure-Requests: 1

Origin:

Content-Type: application/x-www-form-urlencoded

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

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: same-origin

Sec-Fetch-Mode: navigate

Sec-Fetch-User: ?1

Sec-Fetch-Dest: document

Referer:

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

空白行

username=lisi&userpwd=123 請求體


請求行


包括三部分:

第一部分:請求方式(7種)

get(常用的)

post(常用的)

delete

put

head

options

trace

第二部分:URI

什麼是URI? 統一資源識別符號。代表網路中某個資源的名字。但是通過URI是無法定位資源的。

什麼是URL?統一資源定位符。代表網路中某個資源,同時,通過URL是可以定位到該資源的。

URI和URL什麼關係,有什麼區別?

URL包括URI

這是URL。

/servlet05/index.html 這是URI。

第三部分:HTTP協議版本號

請求頭


請求的主機

主機的埠

瀏覽器資訊

平臺資訊

cookie等資訊

空白行


空白行是用來區分“請求頭”和“請求體”

請求體


向伺服器傳送的具體資料。

HTTP的響應協議(S --> B)


HTTP的響應協議包括:4部分


狀態行

響應頭

空白行

響應體




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011332/viewspace-2878952/,如需轉載,請註明出處,否則將追究法律責任。

相關文章