HTTP&HTTPS詳解

一、HTTP代理服務器工作原理     

       HTTP協議是一種應用層協議,它默認使用的傳輸層協議是TCP協議,在HTTP通信鏈上,客戶端和目標服務器之間通常存在某些中轉代理服務器,它們提供對目標資源的中轉訪問,一個HTTP請求可能被多個代理服務器轉發,後面的服務器稱爲前面服務器的上游服務器。代理服務器按照其使用方法和作用,分爲正向代理服務器、反向代理服務器和透明代理服務器。

        正向代理服務器要求客戶端自己設置代理服務器的地址。客戶端的每次請求都將直接發送到該代理服務器,並由代理服務器來請求目標資源。比如訪問國外被屏蔽了的網站,就需要使用正向代理服務器。

        反向代理服務器則被設置在服務器上,無需客戶端進行任何設置。換句話說就是代理服務器來接收Internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從內部服務器上得到的結果返回給客戶端。如圖下圖爲HTTP通信鏈上的代理服務器。


        透明代理服務器的地址只能設置在網關上,用戶訪問Internet的數據報必然都經過網關,該代理對用戶顯然是透明的,透明代理可以看作正向代理的一種特殊情況。

        代理服務器通常還提供緩存目標資源的功能,當然這是可選的,這樣用戶下次訪問同一資源時速度將很快。

二、HTTP通信

        客戶端與服務器之間的通信是依據TCP協議進行的,如下圖爲TCP時序圖。


        HTTP請求方法有9種,如下圖:


        HTTP應答常見的狀態碼和狀態信息及其含義如下表:


        HTTP協議是一種無狀態的協議,即每個HTTP請求之間沒有任何上下文關係,在交互式Web應用程序興起之後,HTTP的這種無狀態特性就顯得不適應了,因爲交互式程序通常要承上啓下,那麼,我們就要使用額外的手段來保持HTTP連接狀態,常見的解決方法是Cookie,它是服務器發送給客戶端的特殊信息,客戶端每次向服務器發送請求的時候都要帶上這些信息,這樣服務器就可以區分不同的客戶端了,基於瀏覽器的自動登錄就是用Cookie實現的。

總結:

HTTP協議過程(一次HTTP操作稱爲一個事務)

三次握手、四次揮手

1)首先客戶機與服務器需要建立連接。只要單擊某個超級鏈接,HTTP的工作開始。

2)建立連接後,客戶機發送一個請求給服務器,請求方式的格式爲:統一資源標識符(URL)、協議版本號,後邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。

3)服務器接到請求後,給予相應的響應信息,其格式爲一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是MIME信息包括服務器信息、實體信息和可能的內容。

4)客戶端接收服務器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,然後客戶機與服務器斷開連接。

三、HTTP和HTTPS的區別

        HTTP&HTTPS主要應用於Web瀏覽器和網站服務器之間傳遞數據,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息,因此它是不安全的,不適合傳輸一些敏感信息。而HTTPS爲了數據傳輸的安全,在HTTP協議的基礎上加了SSL協議,SSL協議依靠證書來驗證服務器的身份,並未瀏覽器和服務器之間的通信加密。

        HTTP和HTTPS的主要區別:

1)https協議需要到ca申請證書,一般免費的證書很少,需要交費;

2)http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議;

3)http和https使用的是完全不同的連接方式,用的端口也不一樣前者是80,後者是443;

4)http的連接很簡單,是無狀態的;https協議是由ssl+https協議構建的可進行加密傳輸、身份認證的網絡協議比http協議安全。

拓展:

SSH協議(安全外殼協議),是建立在應用層基礎上的安全協議,SSH是目前較爲可靠的,專門爲遠程登錄會話和其他網路服務提供安全性的協議,並且用SSH協議傳輸的數據時經過壓縮的,能夠加快數據傳輸的速度,SSH協議提供兩種級別的安全驗證,一:基於口令驗證;二:基於祕鑰的安全驗證。SSH協議的組成部分:傳輸層協議、用戶認證協議、連接協議。

  傳輸層協議(The Transport Layer Protocol)提供服務器認證,數據機密性,信息完整性 等的支持;
  用戶認證協議(The User Authentication Protocol) 則爲服務器提供客戶端的身份鑑別;

  連接協議(The Connection Protocol) 將加密的信息隧道複用成若干個邏輯通道,提供給更高層的應用協議使用; 各種高層應用協議可以相對地獨立於SSH基本體系之外,並依靠這個基本框架,通過連接協議使用SSH的安全機制。

SSH運行過程:

1)Client端向Server端發起SSH連接請求。
2)Server端向Client端發起版本協商。
3)協商結束後Server端發送Host Key公鑰 Server Key公鑰,隨機數等信息。到這裏所有通信是不加密的。
4)Client端返回確認信息,同時附帶用公鑰加密過的一個隨機數,用於雙方計算Session Key。
5)進入認證階段。從此以後所有通信均加密。
6)認證成功後,進入交互階段。

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