http協議詳解

2021-10-09 16:21:40 字數 3569 閱讀 7913

http和https協議在我們日常生活中都會見到,但是可能有些人都不太清楚這兩個協議什麼意思,又有什麼區別,下面我詳細介紹一下,說的不好的,麻煩指證

超文字傳輸協議(英文:hypertext transfer protocol,縮寫:http)是一種用於分布式、協作式和超**資訊系統的應用層協議。http是全球資訊網的資料通訊的基礎。

http是乙個客戶端終端(使用者)和伺服器端(**)請求和應答的標準(tcp)

儘管tcp/ip協議是網際網路上最流行的應用,http協議中,並沒有規定必須使用它或它支援的層。事實上,http可以在任何網際網路協議上,或其他網路上實現。http假定其下層協議提供可靠的傳輸。因此,任何能夠提供這種保證的協議都可以被其使用。因此也就是其在tcp/ip協議族使用tcp作為其傳輸層。

超文字傳輸協議基於tcp/ip協議並且支援bs和cs架構的資料通訊功能的應用層協議

2、靈活:http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type加以標記。

3.無連線:無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

4.無狀態:http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。

5、支援b/s及c/s模式。

http協議定義web客戶端如何從web伺服器請求web頁面,以及伺服器如何把web頁面傳送給客戶端。http協議採用了請求/響應模型。客戶端向伺服器傳送乙個請求報文,請求報文包含請求的方法、url、協議版本、請求頭部和請求資料。伺服器以乙個狀態行作為響應,響應的內容包括協議的版本、成功或者錯誤**、伺服器資訊、響應頭部和響應資料。

1. 客戶端連線到web伺服器

乙個http客戶端,通常是瀏覽器,與web伺服器的http埠(預設為80)建立乙個tcp套接字連線。例如,

2. 傳送http請求

通過tcp套接字,客戶端向web伺服器傳送乙個文字的請求報文,乙個請求報文由請求行、請求頭部、空行和請求資料4部分組成。

3. 伺服器接受請求並返回http響應

web伺服器解析請求,定位請求資源。伺服器將資源複本寫到tcp套接字,由客戶端讀取。乙個響應由狀態行、響應頭部、空行和響應資料4部分組成。

4. 釋放連線tcp連線

若connection 模式為close,則伺服器主動關閉tcp連線,客戶端被動關閉連線,釋放tcp連線;若connection 模式為keepalive,則該連線會保持一段時間,在該時間內可以繼續接收請求;

5. 客戶端瀏覽器解析html內容

客戶端瀏覽器首先解析狀態行,檢視表明請求是否成功的狀態**。然後解析每乙個響應頭,響應頭告知以下為若干位元組的html文件和文件的字符集。客戶端瀏覽器讀取響應資料html,根據html的語法對其進行格式化,並在瀏覽器視窗中顯示。

http協議是基於tcp/ip協議之上的應用層協議

http協議規定,請求從客戶端發出,最後伺服器端響應該請求並 返回。換句話說,肯定是先從客戶端開始建立通訊的,伺服器端在沒有 接收到請求之前不會傳送響應

無狀態儲存:http是一種不儲存狀態,即無狀態(stateless)協議。http協議 自身不對請求和響應之間的通訊狀態進行儲存。也就是說在http這個 級別,協議對於傳送過的請求或響應都不做持久化處理。

使用http協議,每當有新的請求傳送時,就會有對應的新響應產 生。協議本身並不保留之前一切的請求或響應報文的資訊。這是為了更快地處理大量事務,確保協議的可伸縮性,而特意把http協議設計成 如此簡單的。可是,隨著web的不斷發展,因無狀態而導致業務處理變得棘手 的情況增多了。比如,使用者登入到一家購物**,即使他跳轉到該站的 其他頁面後,也需要能繼續保持登入狀態。針對這個例項,**為了能 夠掌握是誰送出的請求,需要儲存使用者的狀態。http/1.1雖然是無狀態協議,但為了實現期望的保持狀態功能, 於是引入了cookie技術。有了cookie再用http協議通訊,就可以管 理狀態了。

http/1.1協議中共定義了八種方法(也叫「動作」)來以不同方式操作指定的資源:

get

head

與get方法一樣,都是向伺服器發出指定資源的請求。只不過伺服器將不傳回資源的本文部分。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中「關於該資源的資訊」(元資訊或稱元資料)。

post

向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。資料被包含在請求本文中。這個請求可能會建立新的資源或修改現有資源,或二者皆有。

put

delete

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

trace

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

options

這個方法可使伺服器傳回該資源所支援的所有http請求方法。用'*'來代替資源名稱,向web伺服器傳送options請求,可以測試伺服器功能是否正常運作。

connect

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

注意事項:

方法名稱是區分大小寫的。當某個請求所針對的資源不支援對應的請求方法的時候,伺服器應當返回狀態碼405(method not allowed),當伺服器不認識或者不支援對應的請求方法的時候,應當返回狀態碼501(not implemented)。

http伺服器至少應該實現get和head方法,其他方法都是可選的。當然,所有的方法支援的實現都應當匹配下述的方法各自的語義定義。此外,除了上述方法,特定的http伺服器還能夠擴充套件自定義的方法。例如patch(由 rfc 5789 指定的方法)用於將區域性修改應用到資源。

http狀態碼

所有http響應的第一行都是狀態行,依次是當前http版本號,3位數字組成的狀態**,以及描述狀態的短語,彼此由空格分隔。

狀態**的第乙個數字代表當前響應的型別:

Http協議詳解 Http請求詳解

http是hypertext transfer protocol 超文字傳輸協議 的簡寫,它是tcp ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程。客戶端連上web伺服器後,若想獲得web伺服器中的某個web資源,需遵守一定的通訊格式,http協議用於定義客戶端與w...

Http協議詳解

http協議是乙個基於tcp ip 的協議,使用的是一種請求 響應模型 目前的版本為1。1,但有一些 仍然使用1。0的版本,在待會的實驗中,我們可以看到,網易的主頁163.com仍舊使用的1.0的標準。1 何為請求 響應機制 在這一種機制中,總是客戶端請求伺服器,伺服器接受響應後根據請求端的請求資訊...

HTTP協議詳解

head to inde x.html not supported.invalid method in request head htp 1.1 apache 1.3.12 server at www.fudan.edu.cn port 80 關於實體頭部的內容還可以有 last modified ...