HTTP協議及請求

2021-09-27 13:47:07 字數 2609 閱讀 3294

http協議

http協議概述

http工作原理

以下是 http 請求/響應的步驟:

客戶端連線到web伺服器

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

傳送http請求

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

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

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

釋放連線tcp連線

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

客戶端瀏覽器解析html內容

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

瀏覽器向 dns 伺服器請求解析該 url 中的網域名稱所對應的 ip 位址;

解析出 ip 位址後,根據該 ip 位址和預設埠 80,和伺服器建立tcp連線;

瀏覽器發出讀取檔案(url 中網域名稱後面部分對應的檔案)的http 請求,該請求報文作為 tcp 三次握手的第三個報文的資料傳送給伺服器;

伺服器對瀏覽器請求作出響應,並把對應的 html 文字傳送給瀏覽器;

釋放 tcp連線;

瀏覽器將該 html 文字並顯示內容;

http請求方法

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

head

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

post

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

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位數字組成的狀態**,以及描述狀態的短語,彼此由空格分隔。

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

雖然 rfc 2616 中已經推薦了描述狀態的短語,例如"200 ok",「404 not found」,但是web開發者仍然能夠自行決定採用何種短語,用以顯示本地化的狀態描述或者自定義資訊。

以「=」分開引數名稱與資料,通常以utf8的url編碼,避開字元衝突的問題)

片段。以「#」字元為起點

以 為例, 其中:

http,是協議;

www.luffycity.com,是伺服器;

80,是伺服器上的網路埠號;

/news/index.html,是路徑;

?id=250&page=1,是查詢。

大多數網頁瀏覽器不要求使用者輸入網頁中「http://」的部分,因為絕大多數網頁內容是超文字傳輸協議檔案。同樣,「80」是超文字傳輸協議檔案的常用埠號,因此一般也不必寫明。一般來說使用者只要鍵入統一資源定位符的一部分(www.luffycity.com:80/news/index.html?id=250&page=1)就可以了。

由於超文字傳輸協議允許伺服器將瀏覽器重定向到另乙個網頁位址,因此許多伺服器允許使用者省略網頁位址中的部分,比如 www。從技術上來說這樣省略後的網頁位址實際上是乙個不同的網頁位址,瀏覽器本身無法決定這個新位址是否通,伺服器必須完成重定向的任務。

http請求格式

http響應格式

Http請求協議

https協議是安全版的 http協議,網上銀行使用這種協議 這個協議在傳送資訊時先把資訊內容加密 一段時間內使用的加密演算法不一定 我們可以通過瀏覽器外掛程式來監視請求和響應,獲取完整的請求和響應資訊。l ie 需要自己安裝 軟體本身的預設編碼不是 utf 8.不支援中文.l 招商銀行的網銀外掛程...

協議 HTTP 請求

協議就像日常生活中的規定一樣,你要過馬路就必須遵守紅燈停綠燈行的規定,你要訪問網路就必須遵守連入網際網路及資料如何再它們之間傳輸的標準 完整的http解析過程 對 進行dns解析 得到ip位址 建立tcp連線三次握手 傳送http請求 伺服器響應http請求返回響應結果 瀏覽器得到資源檔案渲染介面 ...

HTTP請求協議

request url 請求的url位址 request method 請求方法 status code 狀態碼 remote address 遠端位址 connection 連線型別 conetent encoding 資料壓縮方式 gzip compress deflate identity b...