目錄
HTTP不同場景的通信過程
HTTP正常交互過程
HTTP透明加速傳輸過程
HTTP代理服務器場景下交互過程
通過AC對上網用戶不同場景的認證過程
AC上網認證正常交互過程
通過Cookie實現免認證交互過程
代理服務器場景下HTTP密碼認證交互過程
HTTP不同場景的通信過程
HTTP、HTTPS、SSL協議以及報文講解-CSDN博客
HTTP正常交互過程
1、電腦通過DNS協議將域名解析為IP地址(先本地緩存、再本機Hosts文件、再DNS服務器)
2、電腦與解析出來的外網服務器IP建立TCP三次握手(HTTP默認80端口、HTTPS默認443端口)
3、電腦發出HTTP請求(GET或POST)
4、外網服務器回應HTTP 200 OK(會將數據內容進行編碼)
5、PC瀏覽器將外網服務器返回的內容解碼成可視化的界面
6、PC與服務器進行四次揮手-現在有些HTTP支持長連接,可能看不到四次揮手(有些情況是電腦直接發送RST報文斷開連接)
HTTP透明加速傳輸過程
什么是HTTP透明加速設備
在網絡中有一臺HTTP透明加速設備,用于提升網絡用戶的上網速度,節省公網帶寬
內網用戶在訪問某些網站的時候,可以直接匹配HTTP透明加速設備的一些緩存數據;相當于用戶直接從本地的局域網來讀取網站信息
透明加速設備起到了用戶和外網服務器的中間人作用(既作為服務器,也作為客戶端)
HTTP透明加速交互過程
1、電腦通過DNS協議將域名解析為IP地址(先本地緩存、再本機Hosts文件、再DNS服務器)
2、電腦與解析出來的IP建立TCP三次握手(此連接會被透明加速設備劫持,透明加速設備偽造成外網服務器與PC建立三次握手)
3、電腦發出HTTP GET請求
4、透明加速設備判斷此GET請求的頁面是否存在緩存(如果存在緩存,則返回數據給PC;如果不存在緩存,則透明加速設備代替PC與外網服務器進行交互,交互完成后再將數據返回給PC,并且透明加速設備自己也緩存一份)
5、當下次PC再次訪問這些網站時就直接匹配透明加速設備的緩存,起到了加速訪問和節省公網帶寬的作用
6、PC瀏覽器將外網服務器返回的內容解碼成可視化的界面
7、PC與公網服務器進行四次揮手(實際是PC與透明加速設備偽造成的公網服務器斷開;如果透明加速設備與外網服務器建立了連接,也需要斷開)
HTTP代理服務器場景下交互過程
在網絡中有一臺HTTP顯示代理設備,內網用戶為瀏覽器配置了代理服務器,代理地址為HTTP顯示代理設備的地址(端口號為8080)
通過代理服務器,使得電腦端訪問網頁域名時不需要DNS解析
HTTP顯示代理交互過程
1、電腦直接與代理服務器的IP和端口建立TCP三次握手(8080端口)
2、電腦發出HTTP GET請求
3、代理服務器收到該GET請求后,先進行DNS解析
4、代理服務器與解析出來的IP建立TCP三次握手(代理服務器源端口為隨機端口,目的端口默認HTTP 80、HTTPS 443)
5、代理服務器發出HTTP GET請求
6、公網服務器將數據包返回給代理服務器
7、代理服務器將數據包返回給電腦PC
8、PC與代理服務器進行TCP四次揮手,代理服務器與公網服務器進行四次揮手
通過AC對上網用戶不同場景的認證過程
AC上網認證正常交互過程
希望對每個上網用戶進行認證、控制和審計(對每個用戶開啟用戶名密碼認證策略)
通過AC進行上網認證
1、PC向DNS服務器發出DNS QUERY請求,DNS回應IP地址
2、PC向解析出的IP地址發送TCP 三次握手
3、PC向服務器發送GET請求(請求主頁)
4、AC攔截PC的GET請求,此時AC自己偽造成用戶要訪問的服務器,給用戶回復HTTP 302 Moved Temporarily重定向消息,要求PC重定向訪問AC的認證頁面
5、PC自動重定向訪問AC的認證頁面(先與重定向的IP地址建立三次握手),輸入賬號密碼進行認證
6、AC判斷用戶名密碼是否正確,如果正確則認證通過;AC返回HTTP 200 OK,并讓AC重定向到之前訪問的網站
通過Cookie實現免認證交互過程
用戶希望第一次登錄認證以后,一段時間以內不需要重復認證登錄
解決方案1:關閉認證設備的無流量自動注銷功能(弊端:用戶在線時長統計不準確)
解決方案2:認證設備開啟Cookie免認證功能
第一次登錄
1~5:前5步同正常AC上網認證密碼交互過程
6:在AC判斷認證通過之后,在給用戶返回HTTP 200 OK時,還會通過set-cookie給PC的瀏覽器種植一個附帶認證信息的Cookie值,最后讓AC重定向到之前訪問的網站
后續登錄,再次訪問網站實現免認證(前提是用戶并沒有認為注銷賬號)
1、PC向DNS服務器發出DNS QUERY請求,DNS回應IP地址
2、PC向解析出的IP地址發送TCP 三次握手
3、PC向服務器發送GET請求(請求主頁)
4、AC攔截PC的GET請求,此時AC自己偽造成用戶要訪問的服務器,給用戶回復HTTP 302 Moved Temporarily重定向消息,要求PC重定向訪問AC的認證頁面
5、PC自動重定向訪問AC的認證頁面(先與重定向的IP地址建立三次握手),訪問時的HTTP GET請求中攜帶了之前AC給瀏覽器種植的認證信息Cookie值
6、AC判斷此認證Cookie值是否與AC設備本地保存的一致,如果一致則認證通過,返回HTTP 200 OK,并且讓用戶以與該cookie綁定的用戶名上網,最后讓PC重定向到之前訪問的網站
代理服務器場景下HTTP密碼認證交互過程
在網絡出口有一臺代理設備(即 AC部署在PC和代理服務器之間)
PC上配置了代理服務器的IP,AC上開啟了密碼認證策略
存在的問題
1、PC與代理服務器8080建立三次握手
2、PC向代理服務器發起HTTP GET請求
3、AC攔截PC的GET請求,此時AC自己偽造成用戶要訪問的服務器,給用戶回復HTTP 302 Moved Temporarily重定向消息,要求PC重定向訪問AC的認證頁面
4、PC向代理服務器發送HTTP GET請求,請求AC的認證界面(并不是直接向AC發起HTTP GET請求,此時AC收到后又會發送重定向,出現了循環重定向);按照正常情況,此時PC向訪問重定向頁面時就不應該去向代理服務器發送,而是應該向AC發送HTTP GET請求(解決方法:在用戶端設置代理服務器時,需要設置用戶端去訪問AC重定向的地址時不使用代理服務器訪問)
正常的交互流程
1、PC與代理服務器8080建立三次握手
2、PC向代理服務器發起HTTP GET請求
3、AC攔截PC的GET請求,此時AC自己偽造成用戶要訪問的服務器,給用戶回復HTTP 302 Moved Temporarily重定向消息,要求PC重定向訪問AC的認證頁面
4、PC自動重定向訪問AC的認證頁面(先與重定向的IP地址建立三次握手),輸入賬號密碼進行認證
5、AC判斷用戶名密碼是否正確,如果正確則認證通過;AC返回HTTP 200 OK,并讓AC重定向到之前訪問的網站
6、PC向代理服務器發起HTTP GET請求
7、接下來就和正常的代理服務器交互流程一樣(代理服務器收到該GET請求后先進行DNS解析、代理服務器與解析出來的IP建立TCP三次握手、代理服務器發出HTTP GET請求、代理服務器將數據包返回給電腦PC)