【前端 · 面試 】HTTP 總結(一)—— HTTP 概述

最近我在做前端面試題總結系列,感興趣的朋友可以添加關注,歡迎指正、交流。

概念

HTTP 的全稱是 Hyper Text Transfer Protocol,翻譯過來就是“超文本傳輸協議”。

HTTP 是一個簡單的請求-響應協議,它通常運行在 TCP 之上。它指定了客戶端可能發送給服務器什麼樣的消息以及得到什麼樣的響應。

補充

HTTP 是萬維網(World Wide Web)的基礎協議

HTTP 詳細規定了瀏覽器和萬維網(WWW = World Wide Web)服務器之間互相通信的規則,通過因特網傳送萬維網文檔的數據傳送協議。

自 Tim Berners-Lee 博士和他的團隊在 1989-1991 年間創造出 HTTP 以來,HTTP 已經發生了太多的變化,在保持協議簡單性的同時,不斷擴展其靈活性。如今,HTTP已經從一個只在實驗室之間交換文件的早期協議進化到了可以傳輸圖片,高分辨率視頻和3D效果的現代複雜互聯網協議。

HTTP 是應用層協議

HTTP 是應用層的協議,通過 TCP,或者是 TLS -加密的TCP連接來發送,理論上任何可靠的傳輸協議都可以使用。

同其他應用層協議一樣,HTTP 協議是爲了實現某一類具體應用的協議,並由某一運行在用戶空間的應用程序來實現其功能。

HTTP 是一種協議規範,這種規範記錄在文檔上,爲真正通過 HTTP 進行通信的 HTTP 的實現程序。

HTTP 是一種可擴展的協議

因爲其良好的擴展性,時至今日,它不僅被用來傳輸超文本文檔,還用來傳輸圖片、視頻或者向服務器發送如 HTML 表單這樣的信息。HTTP 還可以根據網頁需求,僅獲取部分 Web 文檔內容更新網頁。

HTTP 是基於 B/S 架構進行通信的

HTTP 的服務器端實現程序有 httpd、nginx 等。

其客戶端的實現程序主要是 Web 瀏覽器,例如 Firefox、Google Chrome、Safari、Opera 等。

Web 服務是基於 TCP 的,因此爲了能夠隨時響應客戶端的請求,Web 服務器需要監聽在 80/TCP 端口,這樣客戶端瀏覽器和 Web 服務器之間就可以通過 HTTP 進行通信了。

HTTP 由請求和響應組成

HTTP 是一個標準的客戶端服務器模型。

客戶端和服務端通過交換各自的消息(與數據流正好相反)進行交互。由像瀏覽器這樣的客戶端發出的消息叫做 requests,被服務端響應的消息叫做 responses。

請求和響應消息的頭以 ASCII 形式給出;而消息內容則具有一個類似 MIME 的格式。這個簡單模型是早期 Web 成功的有功之臣,因爲它使開發和部署非常地直截了當。

HTTP 是一種能夠獲取如 HTML 這樣的網絡資源的 protocol (通訊協議)

它是在 Web 上進行數據交換的基礎,是一種 client-server 協議。

請求通過一個實體被髮出,實體也就是用戶代理。大多數情況下,這個用戶代理都是指瀏覽器,當然它也可能是任何東西,比如一個爬取網頁生成維護搜索引擎索引的機器爬蟲。

也就是說,請求通常是由像瀏覽器這樣的接受方發起的。一個完整的Web 文檔通常是由不同的子文檔拼接而成的,像是文本、佈局描述、圖片、視頻、腳本等等。

A Web document is the composition of different resources

HTTP 協議以明文方式發送內容

HTTP 不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP 協議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。

總結

HTTP 是一種運行於 TCP 協議上的應用層協議。

~

~ 本文完,感謝閱讀!

~

學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!

大家好,我是〖編程三昧〗的作者 隱逸王,我的公衆號是『編程三昧』,歡迎關注,希望大家多多指教!

你來,懷揣期望,我有墨香相迎! 你歸,無論得失,唯以餘韻相贈!

知識與技能並重,內力和外功兼修,理論和實踐兩手都要抓、兩手都要硬!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章