HTTP不同场景下的通信过程和用户上网认证过程分析

这篇具有很好参考价值的文章主要介绍了HTTP不同场景下的通信过程和用户上网认证过程分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP不同场景的通信过程

HTTP正常交互过程

1、电脑通过DNS协议将域名解析为IP地址(先本地缓存、再本机Hosts文件、再DNS服务器)

2、电脑与解析出来的外网服务器IP建立TCP三次握手(HTTP默认80端口、HTTPS默认443端口)

3、电脑发出HTTP请求Q(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、HTTPS443)

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通过HTTP GET请求访问AC的认证页面–重定向的页面(先与重定向的IP地址建立三次握手),输入账号密码进行认证

6、AC判断用户名密码是否正确,如果正确则认证通过;AC返回HTTP 200OK,并让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通过HTTP GET请求访问AC的认证页面–重定向的页面(先与重定向的IP地址建立三次握手),访问时的HTTP GET请求中携带了之前AC给浏览器种植的认证信息Cookie值

6、AC判断此认证Cookie值是否与AC设备本地保存的一致,如果一致则认证通过,返回HTTP 200OK,并且让用户以与该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的认证界面(即:此时PC并不是直接向AC发起HTTP GET请求,而是向代理服务器发送HTTP请求,请求的地址是AC的认证地址,所以此时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通过HTTP GET请求访问AC的认证页面–重定向的页面(先与重定向的IP地址建立三次握手),输入账号密码进行认证

5、AC判断用户名密码是否正确,如果正确则认证通过;AC返回HTTP 200OK,并让AC重定向到之前访问的网站

6、PC向代理服务器发起HTTP GET请求

7、接下来就和正常的代理服务器交互流程一样(代理服务器收到该GET请求后先进行DNS解析、代理服务器与解析出来的IP建立TCP三次握手、代理服务器发出HTTP GET请求、代理服务器将数据包返回给电脑PC)文章来源地址https://www.toymoban.com/news/detail-805462.html

到了这里,关于HTTP不同场景下的通信过程和用户上网认证过程分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 不同网段通信的过程

    不在 有默认网关MAC,则接着第四步;没有默认网关MAC,则通过ARP广播寻址;PC与网关属于同一网段,这一步骤的过程与同网段通信的过程相同。 源IP:本地主机 目的IP:目的主机 源MAC:本地主机 目的MAC:默认网关 1、拆掉二层封装(MAC) 2、根据目的IP查路由表,确认下一跳

    2024年02月09日
    浏览(23)
  • 不同子网络中的通信过程

    从输入www.baidu.com经历了什么 A-B:有数据发送,数据封装ip之后发现没有主机B的mac地址。然后ARP在本网段广播:检查目标地址和源地址是否在同一网段,①在同一网段,返回目标ip对应的mac。②不在同一网段,需要 默认网关的ip和mac信息 。(局域网默认网关一般可以由路由器

    2024年02月11日
    浏览(23)
  • Spring Boot应用中如何动态指定数据库,实现不同用户不同数据库的场景

    当在 Spring Boot 应用程序中使用Spring Data JPA 进行数据库操作时,配置Schema名称是一种常见的做法。然而,在某些情况下,模式名称需要是动态的,可能会在应用程序运行时发生变化。比如:需要做数据隔离的SaaS应用。 所以,这篇博文将帮助您解决了在 Spring Boot 应用程序中如

    2024年04月26日
    浏览(31)
  • MySQL使用存储过程迁移用户表数据,过滤用户名相同名称不同的用户

    存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。它是一段预编译的SQL代码,可以被多次调用,不需要每次都重新编写SQL语句,非常适合用于大量重

    2024年02月06日
    浏览(32)
  • HTTP——八、确认访问用户身份的认证

    HTTP——一、了解Web及网络基础 HTTP——二、简单的HTTP协议 HTTP——三、HTTP报文内的HTTP信息 HTTP——四、返回结果的HTTP状态码 HTTP——五、与HTTP协作的Web服务器 HTTP——六、HTTP首部 HTTP——七、确保Web安全的HTTPS HTTP——八、确认访问用户身份的认证 HTTP——九、基于HTTP的功能

    2024年02月14日
    浏览(28)
  • HTTP身份认证401不同情况下弱口令枚举方法及java代码实现

    大家好,我是ABC_123 。在日常的渗透测试及红队评估项目中,经常遇到http 401身份认证的情况,具体就是访问一个特定目录的时候,会弹出一个要求输入用户名密码的框框。很多朋友会误以为是与tomcat的http basic认证一样,就是把用户名及密码进行了简单的base64加密,然后使用

    2024年01月15日
    浏览(36)
  • 用户案例 | Apache DolphinScheduler 离线调度在自如多业务场景下的应用与实践

    随着自如业务的快速发展,不断增长的调度任务和历史逾万的存量任务对平台稳定性提出了更高的要求。同时,众多非专业开发人员也需要一种更为“亲民”的调度平台使用体验。 如何满足这些日渐凸显的需求对自如大数据平台的开发团队来说,无疑是巨大的挑战。团队经过

    2024年02月15日
    浏览(36)
  • [golang]使用mTLS双向加密认证http通信

    假设一个场景,服务端部署在内网,客户端需要通过暴露在公网的nginx与服务端进行通信。为了避免在公网进行 http 明文通信造成的信息泄露,nginx与客户端之间的通信应当使用 https 协议,并且nginx也要验证客户端的身份,也就是mTLS双向加密认证通信。 这条通信链路有三个角

    2024年02月14日
    浏览(26)
  • 两台电脑简单的通信过程详解(经过两个路由器,不同网段)

         注意拓扑图的接口与本博客是否相符,判断以下命令中的ip是否需要修改。 1.AR1-接口对应IP 2.AR2-接口对应IP 3.AR1-配置路由 4.AR2-配置路由   1.AR1的g0/0/0接口   2.AR2的g0/0/0接口 mac全0代表这个地址待填充,全1代表广播  1.先看IP是否是同网段的,不是同网段,使用ARP获取网关

    2024年03月23日
    浏览(30)
  • 同一台宿主机不同的docker-compose下的容器互相通信;查看docker的network使用情况

    我的 docker 版本: 24.0.2 docker-compose 版本: 1.29.2 linux 是 ubuntu 20.04 在使用 docker 部署环境的时候大多用 docker-compose 来编排,参数的配置会清晰一点。 通常一个容器一个 docker-compose.yml 文件。 这就使得不同 docker-compose 下的容器不能自动的互相通信。 那么顺着这个思路往下想,

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包