再次理解HTTP請求過程 概念原理篇

2021-09-07 03:40:33 字數 1384 閱讀 8472

我曾多次閱讀http協議,但是理解依然不深,在此,再次閱讀,再次理解。加深兩點:解析頭部資訊\r\n,分解頭部和主體用\r\n\r\n。之所以一次請求會看到網路裡有很多請求,是因為瀏覽器代替訪問了多次!程式只管處理一次即可!

步驟1:瀏覽器首先向伺服器傳送http請求,請求包括:

方法:get還是post,get僅請求資源,post會附帶使用者資料;

路徑:/html/path;

網域名稱:由host頭指定:host: www.sina.com.cn

以及其他相關的header;

如果是post,那麼請求還包括乙個body,包含使用者資料。

步驟2:伺服器向瀏覽器返回http響應,響應包括:

響應**:200表示成功,3xx表示重定向,4xx表示客戶端傳送的請求有錯誤,5xx表示伺服器端處理時發生了錯誤;

響應型別:由content-type指定;

以及其他相關的header;

通常伺服器的http響應會攜帶內容,也就是有乙個body,包含響應的內容,網頁的html原始碼就在body中。

每個http請求和響應都遵循相同的格式,乙個http包含header和body兩部分,其中body是可選的。

http協議是一種文字協議,所以,它的格式也非常簡單。http get請求的格式:

header2: value2每個header一行乙個,換行符是\r\n

http post請求的格式:

body data goes here...當遇到連續兩個\r\n時,header部分結束,後面的資料全部是body。

http響應的格式:

200 ok

header1: value1

header2: value2

body data goes here...

http響應如果包含body,也是通過\r\n\r\n來分隔的。請再次注意,body的資料型別由content-type頭來確定,如果是網頁,body就是文字,如果是,body就是的二進位制資料。

當存在content-encoding時,body資料是被壓縮的,最常見的壓縮方式是gzip,所以,看到content-encoding: gzip時,需要將body資料先解壓縮,才能得到真正的資料。壓縮的目的在於減少body的大小,加快網路傳輸。

http請求過程

一 大致流程 根據網域名稱和 dns 解析到伺服器的ip位址 dns cdn 通過arp協議獲得ip位址對應的物理機器的mac位址 瀏覽器對伺服器發起 tcp 3 次握手 建立 tcp 連線後發起 http 請求報文 伺服器響應 http 請求,將響應報文返回給瀏覽器 短連線情況下,請求結束則通過 ...

請求概念理解

http請求,最常用的請求方式,也就是controller中的請求方法,這種方式只能在當前應用的請求中有效,不支援跨平台訪問。webservice請求,採用soap協議 簡單物件訪問協議,笨重 主要用於應用程式之間的通訊方案,其功能可以替換http但是,http的應用的廣泛性和易用性,以及其效能都要...

http請求的概念

我曾多次閱讀http協議,但是理解依然不深,在此,再次閱讀,再次理解。加深兩點 解析頭部資訊 r n,分解頭部和主體用 r n r n。之所以一次請求會看到網路裡有很多請求,是因為瀏覽器代替訪問了多次!程式只管處理一次即可!步驟1 瀏覽器首先向伺服器傳送http請求,請求包括 方法 get還是pos...