HTTP不同場景下的通信過程和用戶上網認證過程分析

目錄

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)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206687.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206687.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206687.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

專業130+總分400+云南大學通信847專業基礎綜考研經驗(原專業課827)

今年專業130總分400云南大學通信上岸,整體考研感覺還是比較滿意,期間也付出了很多心血,走過彎路,下面分享一下這一年考研得失,希望大家可以從中有所借鑒。 先說明我在考研報名前更換成云南大學的理由:&…

谷歌正式發布最強 AI 模型 Gemini

2023年12月6日,谷歌公司宣布推出其被認為是規模最大、功能最強大的人工智能模型 Gemini。 Gemini將分為三個不同的套件:Gemini Ultra、Gemini Pro和Gemini Nano。 Gemini Ultra被認為具備最強大的能力,Gemini Pro則可擴展至多任務&#x…

xilinx原語詳解及仿真——ODDR

ODDR位于OLOGIC中,可以把單沿傳輸的數據轉換為雙沿傳輸的數據, 在講解ODDR功能之前,需要先了解OLOGIC的結構及功能。 1、OLOGIC OLOGIC塊位于IOB的內側,FPGA內部信號想要輸出到管腳,都必須經過OLOGIC。OLOGIC資源的類…

CleanMyMac4.16中文最新版本下載

當很多人還在為電腦運行緩慢、工作問題不能快速得到解決而煩惱的時候,我已經使用過了多款系統清理工具,并找到了最適合我的那一款。我的電腦是超耐用的Mac book,接下來給大家介紹三種在眾多蘋果電腦清理軟件的排名較高的軟件。 一、Maintena…

【ET8】0.ET8入門-ET框架介紹

ET8 新特性 多線程多進程架構,架構更加靈活強大,多線程設計詳細內容請看多線程設計課程抽象出纖程(Fiber)的概念,類似erlang的進程,非常輕松的創建多個纖程,利用多核,仍然是單線程開發的體驗纖程調度: 主線程&#xf…

首次面試經歷(忘指導)當我在簡歷上寫了蒼穹外賣,瑞吉外賣時……

🌈鍵盤敲爛,年薪30萬🌈 個人簡介: 大三在校生,二本院校,專業:信息管理與信息系統 面試崗位: java開發實習生 投”簡歷“ 臨近大三寒假,很早就有實習想法的我,對12月做…

一篇文章了解JDK的前世今生

我們每天都在開發Java,每天都在使用JDK,那么我們了解JDK的發展史嗎,這篇文章將帶你深入了解JDK的發展史。 JDK(Java Development Kit)是Java開發者工具包,是用于編寫Java程序和運行Java程序的軟件開發工具集。自從1995年Java語言首次發布以來,JDK已經經歷了數十年的發展…

python打開相機,用鼠標左鍵框選矩形區域,支持一次框選多個矩形區域,通過鼠標右標清除上一次畫的矩形。

方案一 import cv2# Global variables rectangles [] current_rectangle [] drawing False# Mouse callback function def mouse_callback(event, x, y, flags, param):global rectangles, current_rectangle, drawingif event cv2.EVENT_LBUTTONDOWN:drawing Truecurren…

C語言——常用庫函數

C語言——常用庫函數 memcmp int my_memcmp(char* str1,char* str2,int num) {while(num--){if(*str1>*str2){return 1;}else if(*str1<*str2){return -1;}else{str1;str2;}}return 0; }memcpy void* my_memcpy(void *str1,void *str2,int size) {int *p1str1;int *p2…

Linux數據庫Mysql增刪改查

從安裝數據庫到增刪改查 apt install mariadb-serverUndefined 安裝好后初始化 mysql_secure_installationUndefined 查 查詢現有的庫 show databases;SQL 進入庫 use mysql;Perl 查詢表 show tables;SQL 查詢表結構 desc mysql;SQL 查詢表內容 select * from my…

深度學習TensorFlow2基礎知識學習后半部分

介紹幾個重要操作&#xff1a; 1.范數 a tf.fill([1,2], value2.) b tf.norm(a)# 二范數#第二種計算方法 # 計算驗證 a tf.square(a) log("a的平方:", a) a tf.reduce_sum(a) log("a平方后的和:", a) b tf.sqrt(a) log("a平方和后開根號:"…

NVIDIA與 Sparkfun 的合作伙伴在 Hackster.io 上發起了人工智能創新挑戰賽,喊你來參加!

NVIDIA與 Sparkfun 的合作伙伴在 Hackster.io 上發起了人工智能創新挑戰賽&#xff0c;喊你來參加&#xff01; 本次競賽的目標旨在吸引開發者社區在 NVIDIA Jetson Orin 平臺上為邊緣構建生成式 AI 應用程序和模型&#xff0c;希望通過本次比賽提高人們對新 Jetson 生成式 AI…

Python微信公眾號批量發布文章問題記錄,調用api接口發草稿箱編碼有問題

1、accesstoken獲取方法 def get_access_token():url https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appid{}&secret{}.format(*****************, ***********)response requests.get(url)res_html response.json()access_token res_ht…

四元數,歐拉角,旋轉矩陣,旋轉向量

四元數&#xff0c;旋轉矩陣&#xff0c;旋轉向量&#xff0c;歐拉角 一、歐拉角 1、歐拉角是表達旋轉的最簡單的一種方式&#xff0c;形式上它是一個三維向量&#xff0c;其值分別代表物體繞坐標系三個軸(x,y,z軸&#xff09;的旋轉角度&#xff0c;默認旋轉正向為逆坐標軸逆…

C#winform上下班打卡系統Demo

C# winform上下班打卡系統Demo 系統效果如圖所示 7個label控件(lblUsername、lblLoggedInEmployeeId、lab_IP、lblCheckOutTime、lblCheckInTime、lab_starttime、lab_endtime)、3個按鈕、1個dataGridView控件、2個groupBox控件 C#代碼實現 using System; using System.Dat…

Java零基礎——Elasticsearch篇

1.Elasticsearch簡介 Elasticsearch是一個基于Lucene的一個開源的分布式、RESTful 風格的搜索和數據分析引擎。Elasticsearch是用Java語言開發的&#xff0c;并作為Apache許可條款下的開放源碼發布&#xff0c;是一種流行的企業級搜索引擎。Elasticsearch用于云計算中&#xf…

【Ambari】Python調用Rest API 獲取YARN HA狀態信息并發送釘釘告警

&#x1f984; 個人主頁——&#x1f390;開著拖拉機回家_Linux,大數據運維-CSDN博客 &#x1f390;?&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

二層交換原理

二層交換設備工作在OSI模型的第二層&#xff0c;即數據鏈路層&#xff0c;它對數據包的轉發是建立在MAC&#xff08;Media Access Control &#xff09;地址基礎之上的。二層交換設備不同的接口發送和接收數據獨立&#xff0c;各接口屬于不同的沖突域&#xff0c;因此有效地隔離…

【C/PTA —— 15.結構體2(課內實踐)】

C/PTA —— 15.結構體2&#xff08;課內實踐&#xff09; 7-1 計算職工工資7-2 計算平均成績7-3 找出總分最高的學生7-4 通訊錄的錄入與顯示 7-1 計算職工工資 #include<stdio.h> #include<stdlib.h> typedef struct GZ {char name[6];double j;double f;double z;…

記一次由 jedis 引發的離譜選學問題

背景 我的應用中&#xff0c;使用 jedis 作為連接 redis 的客戶端&#xff0c;一直在用的好好的&#xff0c;后來有一個新的組件&#xff0c;也需要使用 redis&#xff0c;但是組件是內部封裝的&#xff0c;我只能提供一個 StringReidsTempalte&#xff0c;所以我基于應用本身…