一次完整的http請求

2021-08-20 05:07:25 字數 2331 閱讀 9634

首先了解一次完整的http請求到響應的過程需要的步驟

1. 網域名稱解析 

2. 發起tcp的3次握手

3. 建立tcp連線後發起http請求

4. 伺服器端響應http請求,瀏覽器得到html**

5. 瀏覽器解析html**,並請求html**中的資源

6. 瀏覽器對頁面進行渲染呈現給使用者

.0

.1像什麼hosts檔案,dns網域名稱解析等等可以實現這種功能

在客戶機和伺服器之間建立正常的tcp網路連線時:

客戶機首先發出乙個syn訊息,

伺服器使用syn+ack應答表示接收到了這個訊息,

最後客戶機再以ack訊息響應。

這樣在客戶機和伺服器之間才能建立起可靠的tcp連線,資料才可以在客戶機和伺服器之間傳遞。

一段下面引內容自

一次完整的http事務是怎樣乙個過程?

拿到網域名稱對應的ip位址之後,user-agent(一般是指瀏覽器)會以乙個隨機埠(1024

< 埠 < 65535)向伺服器的web程式(常用的有httpd,nginx等)80埠發起tcp的連線請求。這個連線請求(原始的http請求經過tcp/ip4層模型的層層封包)到達伺服器端後(這中間通過各種路由裝置,區域網內除外),進入到網絡卡,然後是進入到核心的tcp/ip協議棧(用於識別該連線請求,解封包,一層一層的剝開),還有可能要經過netfilter防火牆(屬於核心的模組)的過濾,最終到達web程式(本文就以nginx為例),最終建立了tcp/ip的連線。

所謂的http請求,也就是網路客戶端向**伺服器傳送資訊,這個資訊由如下三部分組成:

(1)請求行

例如:get www.cnblogs.com http/1.1

請求行寫法是固定的,由三部分組成,

第一部分是請求方法:

除了常見的只有get和post方法,實際上http請求方法還有很多,比如: put方法,delete方法,head方法,connect方法,trace方法

第二部分是請求**,

第三部分是http版本。

(2)http頭

http頭在http請求可以是3種http頭:1. 請求頭(request header)  2. 普通頭(general header)  3. 實體頭(entity header)

通常來說,由於get請求往往不包含內容實體,因此也不會有實體頭。

(3)內容

只在post請求中存在,因為get請求並不包含任何實體
當web伺服器收到http請求後,會根據請求的資訊做某些處理(這些處理可能僅僅是靜態的返回頁面,或者是包含asp.net,php,jsp等語言進行處理後返回),相應的返回乙個http響應.http響應在結構上很類似於http請求,也是由三部分組成,分別為:

1.狀態行

例如:http/1.1 200 ok

第一部分是http版本

第二部分是響應狀態碼

第三部分是狀態碼的描述

資訊類 (100-199)

響應成功 (200-299)

重定向類 (300-399)

客戶端錯誤類 (400-499)

服務端錯誤類 (500-599)

詳細http狀態訊息請看:

http狀態訊息

2.http頭

http響應中包含的頭包括:1. 響應頭(response header) 2. 普通頭(general header) 3. 實體頭(entity header)。
3.返回內容

http響應內容就是http請求所請求的資訊。這個資訊可以是乙個html,也可以是乙個。響應的資料格式通過content-type欄位來獲得:content-type:image/png;或者我們熟悉的content-type:text/html
下面是一些常見的內容型別欄位的值。

text/plain

text/html

text/css

image/jpeg

image/png

image/svg+xml

audio/mp4

video/mp4

了解持久連線

有時候我們獲取乙個html頁面,在對瀏覽器對html解析的過程中,如果發現額外的url需要獲取的內容,會再次發起http請求去伺服器獲取,比如樣式檔案,。許多個http請求,只依靠乙個tcp連線就夠了,這就是所謂的持久連線。也是所謂的一次http請求完成。

一次完整的HTTP請求

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...

一次完整的HTTP請求

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...

一次完整的http請求

一些基本概念 1.tcp ip 把與網際網路相關聯的協議集合起來的總稱 2.http是tcp ip的乙個子集 3.tcp ip分為四層 一次完整的http請求流程 1.客戶端通過dns服務得到目標ip 2.http協議 生成針對目標web伺服器的http請求 3.tcp協議 將http請求報文分割成...