HTTP基礎知識

2022-09-09 02:27:10 字數 3917 閱讀 4448

進行資源共享和資訊傳輸。就是獲取資料和傳輸資料給使用者使用。實體層是不屬於tcp/ip協議棧的一層。也就是說tcp/ip協議棧共計四層。

首先得接入網路,區域網或者廣域網,在計算機接入網路的時候,也就是插入網線的時候本地路由器中的  

路由表會更新資料,通過一定淘汰機制演算法刪除很久沒有使用過的計算機ip以及mac位址,並對新加入組的計算

機新分配ip,在分配ip的過程中,路由表會通過arp協議(位址解析協議)得到新接入計算機的mac位址,並存入

mac位址以及分配的ip位址。

首先a使用者使用應用程式產生資料,並通過應用層約定的規則(即應用層協議)傳送資料,資料進行第一次封

裝形成head和data。再通過傳輸層確定目標計算機所需要接受資料的埠再次進行編碼第二次封裝,利用傳輸層

約定的規則(即傳輸層協議,tcp/udp)傳送資料,資料到達網路層,網路層通過ip協議確認要傳送資料的目標ip,

然後通過資料鏈路層的mac位址,資料鏈路層把資料通過乙太網協議第三次封裝成幀,幀也分head(標頭,固定長

度18位元組)和data(資料,最短46位元組,最長1500位元組),超出則分成多個幀進行傳送。再通過實體層進行第四次

封裝,把資料利用實體層協議封裝成1或者0高低電位,這裡可能會使用差分曼徹斯特等編碼方式,資料這時候通過

網線或者電磁波到達路由或者交換機,路由首先檢視目標ip是否在本組區域網內,通過目標ip位址以及傳送方ip地

址對本地子網掩碼進行與(and)運算,如果運算結果相等則說明目標主機在此區域網之內,則直接通過路由表確定

ip以及mac資訊傳送資料。如果不相等則路由器繼續向上層傳送這次傳送的資料,直到某個結點有屬於目標ip的資訊

時,進行接收,並再次通過實體層->資料鏈路層->網路層->傳輸層->應用層的方式進行四次拆包,找到ip->確認mac

位址->確認埠資訊,接收資料到b使用者使用的應用程式上,再由應用程式展現到b使用者面前。應用層決定了向使用者提**用服務時通訊的活動,http 協議也處於該層。傳輸層對上層應用層提供處於網路連線中的兩台計算機之間埠到埠的資料傳輸。在傳輸層有兩個性質不同的協議: tcp 和 udp 。網路層用來處理在網路上流動的資料報。資料報是網路傳輸的最小資料單位。該層規定了通過怎樣的路徑(ip位址到ip位址)到達對方計算機, 

並把資料報傳送給對方。

與對方計算機之間通過多台計算機或網路裝置進行傳輸時,網路層所起的作用就是在眾多的選項內選擇一條傳輸路線。用來處理連線網路的硬體部分。包括控制作業系統、硬體的裝置驅動、網絡卡及光纖等物理可見部分(還包括聯結器等一切傳輸媒介)。

硬體上的範疇均在鏈路層的作用範圍之內。負責通過物理手段將電腦連線起來,並傳輸0和1的電訊號。超級文字,把線性的文字變成非線性的文字,帶跳轉。http協議是在 tcp/ip 協議族的基礎上運作的,是tcp/ip的乙個子集。

是在應用層上對伺服器,客戶端進行資料傳輸方式,傳輸格式約束和規定的乙個協議,具體格式和流程

在下面說明。伺服器可以理解成一台比較厲害的主機,伺服器對每個客戶端提供服務,針對客戶端請求的服務,

由伺服器程式呼叫對應的服務,給客戶端提供服務。客戶端發起對伺服器的請求,傳送請求報文,伺服器接收到請求報文,如果傳送不帶cookie的報文(例如初次登入)

,伺服器會設定cookie並記錄,並回覆響應報文,並對比請求頭中的快取資料,如果記錄的最後一次修改時間等於服務

器最後一次修改時間或者資源戳和伺服器一致,則不返回新頁面,客戶端繼續使用原來的介面,否則返回新頁面。url格式:schema://host[:port#]/path/../[?query-string][#anchor]

i. schema:使用的協議,http、https。 https就是安全的http協議

ii. host:表示請求伺服器的網域名稱或者ip位址

iii. port:埠號,預設是80

iv. path:請求資源的路徑

v. query-string:傳送給伺服器的資料

vi. anchor:錨,跟伺服器無關,只跟客戶端有關

url舉例:

query-string:name=zhangsan&age=18​請求報文有4部分:

​1、request line(請求行)

結構:method/path-to-resource http/version-number

method:請求方法:get、post

get 獲取伺服器的資料

post 提交資料到伺服器

path-to-resource:請求資源的路徑url

version-number:版本號 一般http/1.1

2、request header(請求頭)

accept:瀏覽器接收的資料型別

accept-encoding:瀏覽器能夠接收資料的編碼格式

accept-language:瀏覽器支援的語言

accept-charset:瀏覽器能夠接收的字符集型別

user_agent:使用者**,告訴伺服器客戶端的瀏覽器資訊和作業系統資訊

connection:keep alive(長連線和短連線)

host:主機位址

cookie:使用者識別(儲存使用者名稱)

3、空行

4、request body(請求體)響應報文也分為四部分:

1、response line(響應行)

結構:http/version-number status-code message

http/version number :版本號 一般http/1.1

status code :狀態碼

a)狀態碼作用:伺服器用來告訴瀏覽器是否產生了瀏覽器預期的response

b)狀態碼類別:1xx 2xx 3xx 4xx 5xx

i. 1xx:提示資訊,表示伺服器已經接收到瀏覽器的請求,繼續處理

ii. 2xx:處理成功,表示瀏覽器的請求已經成功被接收、並正確處理

iii.3xx:重定向,表示需要進行更進一步的處理

iv. 4xx客戶端請求錯誤,表示客戶端請求出現錯誤

v. 5xx伺服器端錯誤,伺服器未能正確處理客戶端請求i.    200   ok :表示客戶端請求被成功接收,並將響應資料傳送給客戶端

ii.   302   found :重定向,新的url會在response中返回,瀏覽器將會自動向新的url傳送請求。

iii.  304   not modified :表示資訊已經被快取了,還可以繼續使用

iv.  403   forbidden :伺服器接收到客戶端請求,但拒絕為客戶端提供服務

v.   404   not found :表示客戶端請求的資源不存在(url輸錯了)

vi.  500   internet server error :伺服器發生了不可預期的錯誤

message:狀態碼對應的狀態資訊

2、response header(響應頭)

date:訊息生成時間

content-type:響應資料的型別

transfer-encoding:分塊傳輸

last-modified: fri, 13 apr 2018 06:43:31 gmt :伺服器記錄的檔案最後一次修改的時間

content-type:響應報文的body的內容型別

etag:資源戳,與請求報文的if-none_match配合使用

set-cookie:將cookie資料傳送到瀏覽器,並要求瀏覽器進行記錄

content-encoding:伺服器響應給瀏覽器的檔案的壓縮方式

content-language:伺服器告訴瀏覽器響應的語言

server:伺服器告訴瀏覽器當前伺服器的資訊

location:重定向的url

3、空行

4、request body(響應體)

使用者看到的內容,一般使用靜態或者動態的網頁**

HTTP 基礎知識

具體去看原文 你應該知道的http基礎知識 1.http請求報文格式 http的請求報文分為三個部分請求行 請求頭和請求體。1.1 請求行 請求行 request line 分為三個部分 請求方法 請求位址和協議及版本,以crlf r n 結束。http 1.1定義的請求方法有8中 get post...

HTTP 基礎知識

標籤位於文件的頭部,不包含任何內容。標籤的屬性定義了與文件相關聯的名稱 值對。標籤永遠位於 head 元素內部。http equiv 屬性為名稱 值對提供了名稱。並指示伺服器在傳送實際的文件之前先在要傳送給瀏覽器的 mime 文件頭部包含名稱 值對。當伺服器向瀏覽器傳送文件時,會先傳送許多名稱 值對...

HTTP基礎知識

get 用於請求訪問已經被uri 統一資源識別符號 識別的資源,可以通過url傳參給伺服器 post 用於傳輸資訊給伺服器,主要功能與get方法類似,但一般推薦使用post方式。put 傳輸檔案,報文主體中包含檔案內容,儲存到對應uri位置。head 獲得報文首部,與get方法類似,只是不返回報文主...