[網際網路] 網路服務與技術
此文章為各筆記之整理,非原創,擷取來源可見資料來源:
- MIS 一定要懂的 82 個網路技術知識 @ 旗標出版
網頁瀏覽相關協定(HTTP, HTTPS, SSL, TSL)
HTTP
**HTTP(Hypertext Transfer Protocol,超文本傳輸協定)**是一種在網頁伺服器與網頁瀏覽器間,處理網頁資料的通訊協定。
它有一項特性是無狀態(Stateless),也就是每個 request 都被視為是唯一且獨立的,它不會去記住之前的連線,所以只要發送同樣的 request 出去,就會一定會收到相同的 response。
HTTP 通常會搭配 TCP 使用,較少搭配 UDP,慣例上會以 Port 80 當作伺服器的連接埠號。
A cartoon intro to DNS over HTTPS @ Mozilla Hacks
HTTP Proxy(HTTP 代理伺服器 )
一般來說,當我們透過 HTTP 對網路上的頁面發送請求時,電腦會直接和伺服器連線。但對於企業或團體來說,常會透過某個負責轉送的電腦,執行網際網路上的處理作業,這類的電腦可以在中間進行資料內容的轉送,一般稱為代理伺服器(Proxy)。
透過 HTTP Proxy 可以達到「內容快取(Content Cache)」的特性,減少網路連線壅塞的情況,並能「偵測病毒和防止駭客入侵」、「阻隔惡意網站」。
HTTPS、SSL 和 TSL
超文本傳輸安全協定(HTTPS) 是一種 HTTP 通訊的安全機制,預設的連接埠號是 443。透過 HTTPS,可以為 HTTP 請求和回應的內容加密,可以偵測通訊內容是否遭到竄改的情況,同時會驗證所要連線的網頁伺服器的真實身份。
身為加密連線,會以**安全通訊端層(Secure Sockets Layer, SSL)及傳輸層安全性協定(Transport Layer Security, TLS)**等加密方式來進行加密(屬於 OSI 模型的 Session Layer):
- SSL 已不再更新,最高版本為 3.0。
- TLS 其實就是 SSL 的升級版。
- SSL 3.0 前已經是很過時的加密方式,且也曾被發現嚴重的漏洞,所以建議現在網站的加密方式都要是 TLS 起跳的才安全
因為 TLS 是 SSL 下一代的版本,所以會有人把兩者相互對應:
- TLS 1.0 —> SSL 3.1(0x0301)
- TLS 1.1 —> SSL 3.2(0x0302)
- TLS 1.2 —> SSL 3.3(0x0303)
SSL/TLS 有多種機制(資料交換、金鑰加密方式)可以選擇,伺服器會在通訊一開始和用戶端相互溝通,選擇雙方都適合的機制,這樣過程就稱作「協商(Negotiation)」。
- ⭐ HTTPS 的故事 @ 知乎
- Day7: 摸摸 HTTPS
正向代理和反向代理
代理(proxy)指的是透過中間的代理伺服器(proxy server)來達到一些目的:
- 正向代理(forward proxy):server 在處理請求時,並不知道真正發送請求的 client 是誰,可以用來隱藏 client IP。
- 反向代理(reverse proxy):client 不知道發送請求後,實際處理請求的是哪個 server,常用在負載平衡(load balancing)上。