日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过HTTP请求响应过程了解HTTP协议

發(fā)布時(shí)間:2024/9/20 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过HTTP请求响应过程了解HTTP协议 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先了解一次完整的HTTP請求到響應(yīng)的過程需要的步驟

1. 域名解析 2. 發(fā)起TCP的3次握手 3. 建立TCP連接后發(fā)起http請求 4. 服務(wù)器端響應(yīng)http請求,瀏覽器得到html代碼 5. 瀏覽器解析html代碼,并請求html代碼中的資源 6. 瀏覽器對(duì)頁面進(jìn)行渲染呈現(xiàn)給用戶

1.域名解析

就是將網(wǎng)站名稱轉(zhuǎn)變成IP地址:localhost-->127.0.0.1 像什么hosts文件,DNS域名解析等等可以實(shí)現(xiàn)這種功能

2.發(fā)起TCP的3次握手

在客戶機(jī)和服務(wù)器之間建立正常的TCP網(wǎng)絡(luò)連接時(shí):客戶機(jī)首先發(fā)出一個(gè)SYN消息,服務(wù)器使用SYN+ACK應(yīng)答表示接收到了這個(gè)消息,最后客戶機(jī)再以ACK消息響應(yīng)。這樣在客戶機(jī)和服務(wù)器之間才能建立起可靠的TCP連接,數(shù)據(jù)才可以在客戶機(jī)和服務(wù)器之間傳遞。

下面一段內(nèi)容引自一次完整的HTTP事務(wù)是怎樣一個(gè)過程?

拿到域名對(duì)應(yīng)的IP地址之后,User-Agent(一般是指瀏覽器)會(huì)以一個(gè)隨機(jī)端口(1024 < 端口 < 65535)向服務(wù)器的WEB程序(常用的有httpd,nginx等)80端口發(fā)起TCP的連接請求。這個(gè)連接請求(原始的http請求經(jīng)過TCP/IP4層模型的層層封包)到達(dá)服務(wù)器端后(這中間通過各種路由設(shè)備,局域網(wǎng)內(nèi)除外),進(jìn)入到網(wǎng)卡,然后是進(jìn)入到內(nèi)核的TCP/IP協(xié)議棧(用于識(shí)別該連接請求,解封包,一層一層的剝開),還有可能要經(jīng)過Netfilter防火墻(屬于內(nèi)核的模塊)的過濾,最終到達(dá)WEB程序(本文就以Nginx為例),最終建立了TCP/IP的連接。

3.發(fā)起HTTP請求(HTTP Request)

所謂的HTTP請求,也就是Web客戶端向Web服務(wù)器發(fā)送信息,這個(gè)信息由如下三部分組成:

(1)請求行

例如:GET www.cnblogs.com HTTP/1.1 請求行寫法是固定的,由三部分組成,第一部分是請求方法:除了常見的只有Get和Post方法,實(shí)際上HTTP請求方法還有很多,比如: PUT方法,DELETE方法,HEAD方法,CONNECT方法,TRACE方法第二部分是請求網(wǎng)址,第三部分是HTTP版本。

(2)HTTP頭

HTTP頭在HTTP請求可以是3種HTTP頭:1. 請求頭(request header) 2. 普通頭(general header) 3. 實(shí)體頭(entity header)通常來說,由于Get請求往往不包含內(nèi)容實(shí)體,因此也不會(huì)有實(shí)體頭。

(3)內(nèi)容

只在POST請求中存在,因?yàn)?span id="ozvdkddzhkzd" class="hljs-keyword" style="margin:0px; padding:0px; color:rgb(0,0,255); line-height:1.5">GET請求并不包含任何實(shí)體

4.服務(wù)器端HTTP響應(yīng)(HTTP Response)請求

當(dāng)Web服務(wù)器收到HTTP請求后,會(huì)根據(jù)請求的信息做某些處理(這些處理可能僅僅是靜態(tài)的返回頁,或是包含Asp.net, PHP, Jsp等語言進(jìn)行處理后返回),相應(yīng)的返回一個(gè)HTTP響應(yīng)。HTTP響應(yīng)在結(jié)構(gòu)上很類似于HTTP請求,也是由三部分組成,分別為:

1.狀態(tài)行

例如:HTTP/1.1 200 OK第一部分是HTTP版本第二部分是響應(yīng)狀態(tài)碼 第三部分是狀態(tài)碼的描述信息類 (100-199)響應(yīng)成功 (200-299)重定向類 (300-399)客戶端錯(cuò)誤類 (400-499)服務(wù)端錯(cuò)誤類 (500-599)

詳細(xì)HTTP 狀態(tài)消息請看:HTTP 狀態(tài)消息

2.HTTP頭

HTTP響應(yīng)中包含的頭包括:1. 響應(yīng)頭(response header) 2. 普通頭(general header) 3. 實(shí)體頭(entity header)。

3.返回內(nèi)容

HTTP響應(yīng)內(nèi)容就是HTTP請求所請求的信息。這個(gè)信息可以是一個(gè)HTML,也可以是一個(gè)圖片。響應(yīng)的數(shù)據(jù)格式通過Content-Type字段來獲得:Content-Type:image/png;或者我們熟悉的Content-Type:text/html

下面是一些常見的Content-Type字段的值。

text/plaintext/htmltext/cssimage/jpegimage/pngimage/svg+xmlaudio/mp4video/mp4application/javascriptapplication/pdfapplication/zipapplication/atom+xml

5.瀏覽器解析html代碼,并請求html代碼中的資源

了解持久連接

有時(shí)候我們獲取一個(gè)HTML頁面,在對(duì)瀏覽器對(duì)HTML解析的過程中,如果發(fā)現(xiàn)額外的URL需要獲取的內(nèi)容,會(huì)再次發(fā)起HTTP請求去服務(wù)器獲取,比如樣式文件,圖片。許多個(gè)HTTP請求,只依靠一個(gè)TCP連接就夠了,這就是所謂的持久連接。也是所謂的一次HTTP請求完成。

參考:

1.HTTP協(xié)議漫談

2.一次完整的HTTP事務(wù)是怎樣一個(gè)過程?

3.HTTP 協(xié)議入門


來源:http://www.cnblogs.com/YeChing/p/6337378.html

總結(jié)

以上是生活随笔為你收集整理的通过HTTP请求响应过程了解HTTP协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。