是一系列的加密技術,網址旁有鎖代表uer跟該網站的已加密,通過ssl只有user跟網站知道如何解碼訊息,第三方監聽只會得到一連串隨機的string而無法得知破譯方法。
a電腦ip(1.2.3.4)傳送packet到b電腦ip(5.6.7.8),其資料傳輸過程為如下圖箭頭所示。
Protocol Layer | Description |
---|---|
Application Protocol Layer | 應用層ex: email, FTP |
Transmission Control Protocol Layer | 將packet透過portocol傳輸 |
Internet Control Protocol Layer | 將packet透過ip傳輸 |
Hardware Layer | 將傳輸資料轉換成電路信號 |
當packet傳輸到router時,router會檢查自己是否知道此ip位置在哪,如果不知道default會向上一層傳送資料,讓上一層繼續查找ip位置
http設計於1990年代初期,是通過TCP與TLS發展而成的應用層協議(Application Protocol Layer)
常見的http包含:
http/1
, http/1.1
, http/2.0
get
, post
, put
, delete
, patch
application/json
body
http://ip:port
當用戶端要開啟網站會發送一個原始請求來獲取該頁頁面的html、css、圖像、影片等等,網頁內通常會有超聯結,點擊超連結會將需求轉換為相對應http的request,而後response相對應內容回來。
根據用戶請求response相對應資料回覆給用戶
web client和web server會透過http進行資料傳遞,中間通常會有一個到數個proxy節點,加入proxy好處有:
早期release的http版本,其特色為在每次連線時都會建立一次TCP連線,TCP連線需要握手三次才能發送消息,在送出請求後TCP連線的port會release掉,因此在發起多個requests的時候會造成大量的連線而造成效能的瓶頸。
新增method包含PUT
,PATCH
,OPTIONS
,DELETE
,並且解決在http/1.0的效能問題,即為建立持久連線,默認狀態部會release掉TCP的portocol,在建立連線結束用戶端需發送一個header為Connection: close
來關閉連接。
http的處理為request出去後,伺服器端response回來再發送新的請求,再http pipelining中可以不理會response多次發送request出去,僅限於idempotent methods像是GET
,PUT
,DELETE
,再request失敗後可以重複再發送請求不影響結果。
優化內容:
主要為在http/2.0上新增傳輸協議QUIC機制,因為現有系統多數只支援TCP、UDP,所以新增http3.0支援QUIC,QUIC詳細介紹可以看此處https://medium.com/@chester.yw.chu/http-3-%E5%82%B3%E8%BC%B8%E5%8D%94%E8%AD%B0-quic-%E7%B0%A1%E4%BB%8B-5f8806d6c8cd
下圖為web browser渲染器,其主要的component有