您現在的位置是:首頁 > 棋牌
網際網路基礎知識講解:淺談http協議
- 由 中原說教育 發表于 棋牌
- 2021-12-04
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協議採用了請求/響應模型。客戶端向伺服器傳送一個請求報文,請求報文包含請求的方法、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之響應訊息Response
一般情況下,伺服器接收並處理客戶端發過來的請求後會返回一個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上,如果頁面可以被快取或者其他人可以訪問這臺機器,就可以從歷史記錄獲得該使用者的賬號和密碼。
上述就是今天為大家分享的內容,希望大家喜歡,同時也希望大家多多點贊關注,祝各位生活愉快!