HTTP請求響應過程 與HTTPS區別

2021-09-06 23:08:24 字數 4251 閱讀 4202

原文:

http請求響應過程 與https區別

http協議主要應用是在伺服器和客戶端之間,客戶端接受超文字。

伺服器按照一定規則,傳送到客戶端(一般是瀏覽器)的傳送通訊協議。與之類似的還有檔案傳送協議(file transfer protocol,ftp)簡單郵件傳送協議(****** mail ttransfer protocol,smtp)等。

http是在七層網路模型中的應用層的協議,由傳送請求和接受響應構成,是乙個標準的客戶端伺服器模型。與此同時,http是乙個無狀態的協議。也就是說,不能通過乙個狀態判斷連線的狀態,因此有時候,計算機之間通訊需要通過其他協議來協同工作,一起提供支援。

相對於其他網路傳輸協議,http

有著自己的特點,這也支撐了

協議的基本職能。

(1)基於b/s 

模式,即客戶

/伺服器模式。同時可以提供登陸認證和網間安全傳輸,例如http下加入

ssl層,可以提供安全的https服務

(2)通訊開銷小,簡單快速,傳輸成本低。伺服器請求某些一定的服務時,瀏覽者通常只需在請求報文中新增請求路徑和方法。最一般的情形,例如get、

head

、post等,這也是我們使用最多的。

每一種請求方法都有自己的適用範圍,在請求報文的內部,通過一些規則,說明了使用者與web伺服器之間溝通的型別。同時,http協議規則較為簡單,因此使用http伺服器的系統,**和程式規模都會比較輕量級,但是通訊的速度卻效率較高

(3)使用靈活:超文字協議,允許伺服器和客戶端傳輸任意型別或者任意資料結構的資料物件。而且,通過乙個簡單的頭資訊,例如將正在傳輸的型別由content-type

加以標記,於是可以區分開。

(4)節省傳輸時間:最初版本的http

協議使用非持續連線,只允許傳送並處理乙個連線,當請求響應完成,也就是伺服器完成客戶端的請求,同時收到了客戶端瀏覽器的應答後,連線會立即斷開。有了這種特點,通訊方式節省了大量用於資料傳輸和等待應答的時間,時間成本變得非常小。

同時,高版本http

協議,http 1.1支援持續連線:多個物件可以通過乙個連線可傳送,不需要每次傳輸乙個web物件就去建立乙個新的連線

(5)可能影響傳輸效率,無狀態:http

協議是無狀態協議。無狀態,如果協議對於事務處理沒有記憶的機制,不能儲存處理進度,此時,如果後續的操作需要前面的處理資訊,就需要重新傳送物件即必須重傳,這樣的後果是,可能多次連線才能完成操作,資料量會因此變大。

通常情況下,http協議的工作原理很好理解,使用者通過客戶端向服務端發起乙個請求,建立乙個tcp

連線,指定埠號,預設是80

,然後連線到伺服器工作。在那個埠監聽瀏覽器請求。一旦監聽到客戶端請求,分析請求型別後,伺服器會向客戶端返回乙個響應狀態,比如"http/1.

0 404 ok",同時會返回特定的資料內容,如請求的資源,錯誤**,其它狀態資訊等等。

http協議的請求報文

當瀏覽器向伺服器傳送乙個請求到web

伺服器,

它傳送乙個資料塊

,或請求資訊,

http請求資訊包括3部分:

請求方法uri協議/版本;

請求頭(request header);

請求正文;

下面是乙個http

請求的示例:

(1)請求方法

uri協議/版本

請求的第一行是「

方法/內容 url協議/協議版本名稱」:

上面的**中,「get」說明請求方法,「/test.jsp」表示網路資源,中間空格,最後說明協議和協議的版本。

根據http

標準,http

請求可以使用多種不同的請求方法。例如:http1.1允許支援七種請求方法(也叫「動作」

):get

、post

、head

、options

、put

、delete

和tarce

。日常開發中, get和

post是最常用的方法,主要在相關的web

開發中。

url路徑指定了要訪問的網路資源。一般來說,我們需要的是相對路徑,因為確定資源位置,知道網路資源相對於伺服器的根目錄的路徑就可以,所以以「/」

開頭。在頭資訊結束時,宣告了通訊過程中http

協議版本的使用版本。

需要注意,方法名稱很重要的一點是嚴格區分大小寫。有些時候,某個請求所針對的資源可能不支援對應的請求方法,會通過不同的狀態碼給出響應。例如,

伺服器將返回乙個狀態碼

405(

方法不允許

),當請求伺服器或方法不理解不支援相應的時間

,返回乙個狀態碼

501(

沒有實現

)。(2

)請求頭

(request header)

請求頭包含了一些客戶環境和請求的內容資訊。例如,

請求頭可以宣告瀏覽器核心和語言使用

,請求的長度等。

accept:image/test.image/jpeg.*/*

accept-language:zh-cn

connection:keep-alive

host:222.35.232.103

user-agent:mozila/5.0(compatible:msie5.01:windows nt5.0)

accept-encoding:gzip,deflate.

(3)請求正文

請求正文和請求頭要有空行。這個空行必須存在,說明結束請求頭傳輸,開始傳輸正文請求。請求正文中一般包含很多資訊,例如使用者提交的使用者名稱和密碼之類的登陸資訊:userlogin=bingyue¤tpwd=bingyue

在真實應用中,協議的請求正文可以包含大量的資訊,

而不是如示例的http請

求中一樣,請求正文只有簡單的一行資料。

http協議的響應報文

和請求報文類似,http響應主要也是3個部分構成:

(1)協議狀態版本**描述

(2)響應頭(response header)

(3)響應正文

下面是乙個http

響應的示例:

這是http響應檔案!

客戶端向伺服器傳送請求,和請求報文類似,伺服器會以狀態行響應。

響應報文包括:http協議的版本、結果編碼以及其他的必要資訊,如實體資訊等。響應類別不同,響應報文裡可以包含或者不含實體內容。

http響應報文的首先是以狀態行開始,這些可以參考示例的**。

響應頭也就是報文首部,和請求頭首部一樣,包含重要的資訊,例子中我們可以看到,比如日期時間和伺服器型別以及內容長度和數量等。

更詳細的說明:

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

http協議中狀態碼的應用

HTTP請求與HTTP響應

http請求與http響應 一 http請求 http請求資訊又三部分組成 下面是乙個http請求的資料 1 請求行 以回車為結尾,以空格分隔。post 是請求方法。是url,http 1.1 是協議版本 http請求方法 get請求獲取由request uri所標識的資源 post 在reques...

HTTP請求與響應

乙個http請求一般由4部分組成 1.http請求的方法或動作,比如是get還是post請求 2.正在請求的url 3.請求頭,包含一些客戶端環境資訊,身份驗證資訊等等 4.請求體,也就是請求正文,請求正文中可以包含客戶提交的查詢字串資訊,表單資訊等等 注 一般請求頭和請求體之間空一行 get 一般...

HTTP請求與響應

1.客戶端和伺服器建立連線,客戶端發出請求,伺服器進行三次握手身份確認 2.伺服器接收到請求,linux核心根據 客戶端的請求 socket程序通訊管道發給http程序去解析 apache nginx 3.http伺服器開始處理請求,對使用者的請求報文進行解析,明確客戶端需要的資源和請求方式等等 4...