您現在的位置是:首頁 > 棋牌

網際網路基礎知識講解:淺談http協議

  • 由 中原說教育 發表于 棋牌
  • 2021-12-04
簡介客戶端(瀏覽器)發出讀取檔案(URL 中域名後面部分對應的檔案)的HTTP 請求,該請求報文作為 TCP 三次握手的第三個報文的資料傳送給伺服器

http協議使用什麼埠

首先,我們來看一下,HTTP協議究竟是什麼東西呢

?簡單的說,http協議就是一個超文字傳輸協議,該協議是用於從www(全球資訊網)伺服器傳輸超文字到本地瀏覽器用的,所以平時我們瀏覽網頁離不開這東西,該協議是基於TCP/IP通訊協議來傳輸資料的,可以用來傳遞我們所需要的圖片、檔案以及各方面的資訊。

目前在WWW中主流使用版本為HTTP/1。0的第六版,HTTP/1。1的規範化工作正在進行之中,而且HTTP-NG(Next Generation of HTTP)的建議已經提出。是一種工作於客戶端-服務端(也就是C-S架構)的架構。

http協議工作原理

:瀏覽器作為HTTP客戶端透過URL向HTTP服務端即WEB伺服器傳送所有請求,該請求傳送到web服務的一個監聽埠上(預設埠是80)。Web伺服器根據接收到的請求後,向客戶端傳送響應結果。

網際網路基礎知識講解:淺談http協議

http協議工作模式

詳細過程如下:HTTP協議採用了請求/響應模型。客戶端向伺服器傳送一個請求報文,請求報文包含請求的方法、URL、協議版本、請求頭部和請求資料。伺服器以一個狀態行作為響應,響應的內容包括協議的版本、成功或者錯誤程式碼(比如返回錯誤碼404)、伺服器資訊、響應頭部和響應資料。

HTTP 請求/響應的步驟:

1。

客戶端連線到Web伺服器:

一個HTTP客戶端(最常見的就是瀏覽器),與Web伺服器的HTTP埠(預設為80)建立一個TCP套接字連線。例如,https://www。baidu。com。

2。

傳送HTTP請求:

透過TCP套接字,客戶端向Web伺服器傳送一個文字的請求報文,該報文由請求行、請求頭部、空行和請求資料4部分組成(相應部分內容和請求的內容類似:由響應行、響應頭部、空行和響應訊息4部分組成)。

3。

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

:Web伺服器接收到請求報文後,透過解析請求,找到對應的請求資源(如果找不到則傳送錯誤資訊)。伺服器將找到的資源寫到TCP套接字,傳送響應訊息到客戶端讀取。一個響應訊息由狀態行、響應頭部、空行和響應資料4部分組成(與請求訊息類似)。

4。

釋放連線TCP連線

:當一個訊息的請求——響應結束以後,若connection 模式變為close,那麼伺服器就會主動關閉TCP連線,客戶端被動關閉連線,並釋放TCP連線。當然,如果connection 模式被設定為為keepalive,則該連線會保持一段時間,在該時間內可以繼續接收請求,超時的話同樣會關閉該連結。

5。

客戶端瀏覽器解析HTML內容

:客戶端瀏覽器首先解析狀態行,查看錶明請求是否成功的狀態程式碼。然後解析每一個響應頭,響應頭告知響應的HTML文件和文件的字符集。客戶端讀取響應資料HTML,根據HTML的語法對其進行格式化,並在客戶端(瀏覽器)視窗中顯示。

簡單的說,當我們在瀏覽器位址列鍵入URL後,進入對應的URL會發生如下事情:

首先客戶端(瀏覽器)向 DNS 伺服器(Web伺服器,預設埠80)請求解析該 URL 中的域名所對應的 IP 地址。

解析出對應的 IP 地址後,根據該 IP 地址和預設埠 80,和伺服器建立TCP連線。

客戶端(瀏覽器)發出讀取檔案(URL 中域名後面部分對應的檔案)的HTTP 請求,該請求報文作為 TCP 三次握手的第三個報文的資料傳送給伺服器。

伺服器對瀏覽器請求作出響應,透過解析客戶端的請求,如果有對應的訊息或者資料,就把對應的 html 文字傳送給瀏覽器,如果請求的訊息不存在,則返回對應的失敗訊息。

訊息響應結束後,如果沒有特殊設定,則connection變為close,關閉並釋放 TCP連線。

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

http協議的主要特點

1、簡單快速:通訊速度快,由於客戶向伺服器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST這些資料,因而HTTP伺服器的程式規模小,通訊速度就較快。

2、使用靈活:HTTP允許傳輸任意型別的資料物件。正在傳輸的型別由Content-Type加以標記。

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

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

5、支援B/S及C/S模式。

HTTP狀態碼

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

狀態程式碼的第一個數字代表當前響應的型別:

1xx訊息——請求已被伺服器接收,繼續處理

2xx成功——請求已成功被伺服器接收、理解、並接受

3xx重定向——需要後續操作才能完成這一請求

4xx請求錯誤——請求含有詞法錯誤或者無法被執行

5xx伺服器錯誤——伺服器在處理某個正確請求時發生錯誤

雖然 RFC 2616 中已經推薦了描述狀態的短語,例如“200 OK”,“404 Not Found”,但是WEB開發者仍然能夠自行決定採用何種短語,用以顯示本地化的狀態描述或者自定義資訊。

網際網路基礎知識講解:淺談http協議

http狀態碼解析

HTTP之響應訊息Response

一般情況下,伺服器接收並處理客戶端發過來的請求後會返回一個HTTP的響應訊息。

HTTP響應也由四個部分組成,分別是:狀態行、訊息報頭、空行和響應正文。

網際網路基礎知識講解:淺談http協議

http響應訊息格式

HTTP請求方法解析:

根據HTTP標準,HTTP請求可以使用多種請求方法。

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

GET:

請求指定的頁面資訊,返回內容中有實體主體。特定瀏覽器和伺服器對URL長度有限制,例如 IE對URL長度的限制是2083位元組(2K+35)。對於其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決於操作系 統的支援。因此對於GET提交時,傳輸資料就會受到URL長度的 限制。

POST:

向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案),資料被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。由於不是透過URL傳值,理論上資料不受 限。但實際各個WEB伺服器會規定對post提交資料大小進行限制,Apache、IIS6都有各自的配置。

HEAD:

類似於get請求,只不過返回的響應中沒有具體的試題主體,用於獲取報頭。

PUT:

從客戶端向伺服器傳送的資料取代指定的文件的內容。

DELETE:

請求伺服器刪除指定的頁面。

CONNECT:

HTTP/1。1協議中預留給能夠將連線改為管道方式的代理伺服器。

OPTIONS:

允許客戶端檢視伺服器的效能。

TRACE:

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

post和get模式的安全性比較

POST的安全性要比GET的安全性高。比如:透過GET提交資料,使用者名稱和密碼將明文出現在URL上,因為(1)登入頁面有可能被瀏覽器快取;(2)其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你的賬號和密碼了,除此之外,使用GET提交資料還可能會造成Cross-site request forgery攻擊

get和post的區別

GET提交的資料會放在URL之後,以‘?’分割URL和傳輸資料,引數之間以&相連,如EditPosts。aspx?name=test1&id=123456。 POST方法是把提交的資料放在HTTP包的Body中。

GET提交的資料大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的資料沒有限制。

GET方式需要使用Request。QueryString來取得變數的值,而POST方式透過Request。Form來獲取變數的值。

GET方式提交資料,會帶來安全問題,比如一個登入頁面,透過GET方式提交資料時,使用者名稱和密碼將出現在URL上,如果頁面可以被快取或者其他人可以訪問這臺機器,就可以從歷史記錄獲得該使用者的賬號和密碼。

上述就是今天為大家分享的內容,希望大家喜歡,同時也希望大家多多點贊關注,祝各位生活愉快!

Top