HTTP協議基本原理

2021-10-23 03:18:38 字數 2670 閱讀 1086

http:超文字傳輸協議(hypertext transfer protocol,http)是一種用於分布式、協作式和超**資訊系統的應用層協議。http是全球資訊網的資料通訊的基礎。www是以internet作為傳輸媒介的乙個應用系統,www網上最基本的傳輸單位是web網頁。www的工作基於客戶機/伺服器計算模型,由web 瀏覽器(客戶機)和web伺服器(伺服器)構成,兩者之間採用超文字傳送協議(http)進行通訊。http協議是基於tcp/ip協議之上的協議,是web瀏覽器和web伺服器之間的應用層協議,是通用的、無狀態的、物件導向的協議。

http協議的作用原理包括四個步驟:

(1) 連線:web瀏覽器與web伺服器建立連線,開啟乙個稱為socket(套接字)的虛擬檔案,此檔案的建立標誌著連線建立成功。

(2) 請求:web瀏覽器通過socket向web伺服器提交請求。http的請求一般是get或post命令(post用於form引數的傳遞)。get命令的格式為:  get 路徑/檔名 http/1.0  檔名指出所訪問的檔案,http/1.0指出web瀏覽器使用的http版本。

(3) 應答:web瀏覽器提交請求後,通過http協議傳送給web伺服器。web伺服器接到後,進行事務處理,處理結果又通過http傳回給web瀏覽器,從而在web瀏覽器上顯示出所請求的頁面。

(4) 關閉連線:當應答結束後,web瀏覽器與web伺服器必須斷開,以保證其它web瀏覽器能夠與web伺服器建立連線。

http協議簡述:http是乙個客戶端和伺服器端請求和應答的標準(tcp)。客戶端是終端使用者,伺服器端是**。通過使用web瀏覽器、網路爬蟲或者其它的工具,客戶端發起乙個到伺服器上指定埠(預設埠為80)的http請求。(我們稱這個客戶端)叫使用者**(user agent)。應答的伺服器上儲存著(一些)資源,比如html檔案和影象。(我們稱)這個應答伺服器為源伺服器(origin server)。在使用者**和源伺服器中間可能存在多個中間層,比如**,閘道器,或者隧道(tunnels)。儘管tcp/ip協議是網際網路上最流行的應用,http協議並沒有規定必須使用它和(基於)它支援的層。 事實上,http可以在任何其他網際網路協議上,或者在其他網路上實現。http只假定(其下層協議提供)可靠的傳輸,任何能夠提供這種保證的協議都可以被其使用。

http協議通訊過程

當我們在瀏覽器的位址列輸入「www.baidu.com」然後按回車,這之後發生了什麼事,我們直接看到的是開啟了對應的網頁,那麼內部客戶端和服務端是如何通訊的呢?

1、url自動解析

http url包含了用於查詢某個資源的足夠資訊,基本格式如下:http://host[「:」port][abs_path],其中http表示桶蓋http協議來定位網路資源;host表示合法的主機網域名稱或ip位址,port指定乙個埠號,預設80;abs_path指定請求資源的uri;如果url中沒有給出abs_path,那麼當它作為請求uri時,必須以「/」的形式給出,通常這個工作瀏覽器自動幫我們完成。

2、獲取ip,建立tcp連線

瀏覽器位址列中輸入""並提交之後,首先它會在dns本地快取表中查詢,如果有則直接告訴ip位址。如果沒有則要求閘道器dns進行查詢,如此下去,找到對應的ip後,則返回會給瀏覽器。

當獲取ip之後,就開始與所請求的tcp建立三次握手連線,連線建立後,就向伺服器發出http請求。

3、客戶端瀏覽器向伺服器發出http請求

一旦建立了tcp連線,web瀏覽器就會向web伺服器傳送請求命令,接著以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。

4、web伺服器應答,並向瀏覽器傳送資料

客戶機向伺服器發出請求後,伺服器會客戶機回送應答,http/1.1 200 ok,應答的第一部分是協議的版本號和應答狀態碼,正如客戶端會隨同請求傳送關於自身的資訊一樣,伺服器也會隨同應答向使用者傳送關於它自己的資料及被請求的文件。web伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料

5、web伺服器關閉tcp連線

一般情況下,一旦web伺服器向瀏覽器傳送了請求資料,它就要關閉tcp連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行**,connection:keep-alive ,tcp連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。

http/1.1協議中共八種請求方法:

head

與get方法一樣,都是向伺服器發出指定資源的請求。只不過伺服器將不傳回資源的本文部分。它

的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中「關於該資源的資訊」。

post

向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。資料被包含在請求本文中。

這個請求可能會建立新的資源或修改現有資源,或二者皆有。

delete

請求伺服器刪除request-uri所標識的資源。

trace

回顯伺服器收到的請求,主要用於測試或診斷。

options

這個方法可使伺服器傳回該資源所支援的所有http請求方法。用』*'來代替資源名稱,向web伺服器發

送options請求,可以測試伺服器功能是否正常運作。

connect

http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。通常用於ssl加密伺服器的鏈結

(經由非加密的http**伺服器)。

HTTP協議基本原理

姓名 張馨藝 學號 201631062606 哎呀,本文依舊使用markdown語法進行編寫排版 目錄http 超文字傳輸協議 是乙個基於請求與響應模式的 無狀態的 應用層的協議,常基於tcp的連線方式,http1.1版本中給出一種持續連線的機制,絕大多數的web開發,都是構建在http協議之上的w...

http通訊協議的基本原理

http協議在遠端通訊場景中的應用還是挺廣泛的,包括現在主流的微服務架構的通訊都是基於http協議。由於經常使用的關係,所以大家對http協議的理解還是比較深刻,我這裡就直接幫大家梳理一下http協議的基本原理。一次http請求的通訊流程 我們先來思考乙個問題,我們在瀏覽器上輸入乙個 後,瀏覽器是如...

IS IS協議基本原理

引言 和ospf協議一樣,is is協議也是一種基於鏈路狀態的最短路徑優先演算法進行路由計算的內部閘道器協議,是iso為它的無連線網路協議clnp設計的一種動態路由協議。但是我們現在不使用clnp,為了提供對ip的路由支援,ietf對is is進行的修改,使其可以執行在tcp ip的osi環境中,成...