如果你用 http 上知乎,它會返回乙個 301,重定向到 https.
之後瀏覽器就會記住這個網頁支援 https,在不給出協議 scheme 的情況下(在輸入框只輸入zhihu.com
),優先使用 https 訪問。
在 https 協議中,先建立 tcp 連線,然後在建立 tls/ssl 連線前,會有乙個加密方法協商,在其中瀏覽器和伺服器協商具體的加密協議版本。
客戶端在建立 tls/ssl 連線的 client hello 握手中,會通過 alpn 拓展列出自己支援的各種應用層協議。然後服務端可以按需從中選擇,並在 server hello 中指定具體要使用的協議。
而在 http 通訊或者不支援 alpn 的 https 通訊中,可以通過connection: upgrade
方式從 http/1.x 公升級到 http/2.在 http upgrade 機制中,http/2 的協議名稱是h2c
:
http2-settings:如果服務端不支援 http/2,它會直接返回 http/1 的響應。否則就返回 101 switching.
就伺服器而言,即使它收到的是 http/1.0 的請求,也會返回 http/1.1 的響應。這也算是一種協商機制:伺服器通過 http/1.1 的響應通知客戶端,我是支援 http/1.1 的。
因為 http/1.0 和 http/1.1 都是文字格式的協議,是相容的,因此可以這樣返回。但是 http/2 是二進位制協議,不相容,就必須通過 alpn 或 upgrade 協商。
瀏覽器與伺服器
瀏覽器是安裝在電腦裡面的乙個軟體,能夠將頁面內容渲染出來呈現給使用者檢視,並讓使用者與網頁互動的一種軟體。常見主流瀏覽器 internet explorer,chrome,firefox,safari,opera 瀏覽器核心 瀏覽器所採用的渲染引擎。渲染引擎決定了瀏覽器如何顯示網頁的內容,以及網頁格...
瀏覽器與WEB伺服器的網路協議
瀏覽器與web伺服器相互通訊使用的是http協議。在一般情況下,我們使用網路瀏覽器直接去連線其他internet站點取得網路資訊時,須送出request訊號來得到回答,然後對方再把資訊以bit方式傳送回來。伺服器是介於瀏覽器和web伺服器之間的一台伺服器,有了它之後,瀏覽器不是直接到web伺服器去取...
WEB 伺服器 與 瀏覽器
http協議通訊,是連線瀏覽器和伺服器的橋梁。兩者之間的資訊流,使它們真正的活力。這中間,瀏覽器連著使用者 伺服器連著資料庫 等其他的服務。伺服器能提供給瀏覽器,什麼樣的資訊呢?這些資訊,遵循著http通訊的格式。也許,瀏覽器只是 的乙個視窗,通過使用瀏覽器我們訪問 而真正的 技術,卻被掩蓋掉了。技...