美文网首页
HTTP协议分析

HTTP协议分析

作者: walleipt | 来源:发表于2021-04-16 20:30 被阅读0次

做了很长一段是件http开发的业务居然都没有细致看过http的底层原理,相当失策。最近也是因为看了下websocket才想到要来了解下http了。

  • 先简单建立个思维概念,http协议属于应用层协议,既然是应用层协议也就是tcp的上层协议,也就等于玩弄tcp的socket,http也就是tcp的自定义协议!后续研究的课题我也就都在socket层次上来看!
关键词单工,无状态,短连接。
  • 单工;是同一时间内只能由一个方向传输数据,要么是A-B要么是B-A。http服务端不会主动向服务端推送信息。

  • 双工;就是同一时间内可以同时完成两端(A-B及B-A)数据传输。

  • 无状态;即服务端不知道客户端的状态,简单例子:用户每次访问受限网页都需要去查询用户权限,这就是因为http协议不想tcp协议建立了长连接,一单完成登陆连接到服务器,后续操作就不会再做登录验证了!

  • 短链接;短连接与长连接相对(tcp就是长连接),每次请求http协议,都需要发起连接,客户端发出请求报文,客户端响应报文,关闭连接。并发的请求就是以连接为单位,在具象化的一点就是同一台机50个并发请求给服务器,那么客户端机器就在这一瞬间就开启了50个端口连接到服务器。对比下tcp协议请求的话,客户端只开启一个端口与服务器连接,所有并发数据都在这一个连接通道中传输,所以tcp连接传输是比http协议快的(不考虑业务的情况下),因为tcp协议打开关闭连接只有一次,再次发送就直接使用已打开的连接。

  • http协议还有种说法是单工阻塞;单工前面解释过了,对于阻塞,现在还没看懂具体是哪部分的,http这种是应用层协议,网上查了部分资料这种阻塞是对于读写流来说,但是已经看到过有非阻塞的http服务器实现,暂时无解释跳过。

http协议交互过程

Paste_Image.png

1.可以看到[SYN],[SYN,ACK],[ACK]3此交互后开始http的数据交互这三次交互就是著名的3次握手。
2.后面的http请求,在tcp协议的角度上看只是一个[ACK,PSH]请求而已。所以从点看就不能能理解http是架设在tcp上的应用层协议了。
仔细读取了每次的tcp报文,郁闷的发现个问题,为啥返回的请求中多了一组数据[ack],[ackPSH]传输的是最后http返回的相应数据。这是为了保证tcp中的数据不丢?貌似不像啊,为啥多交互一次才完成嘞?待解!

相关文章

  • Http协议分析

    Http协议分析 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它...

  • HTTP协议分析

    做了很长一段是件http开发的业务居然都没有细致看过http的底层原理,相当失策。最近也是因为看了下websock...

  • Http协议分析

    写在前面 之前做 爬虫相关的 工作基本上都是基于 Http 这个应用层的协议来做的,包括查看请求头,分析一些加密字...

  • HTTP协议分析

    HTTP请求报文 HTTP方法 HTTP方法作用GET请求访问已被URI识别的资源POST传输实体的主体PUT传输...

  • python web渗透测试学习2Web应用交互1HTTP基础

    Web应用交互 HTTP协议基础 HTTP请求 requests 分析HTTP响应 HTTP协议基础 超文本传输协...

  • python web渗透测试工具学习2Web应用交互1HTTP基

    Web应用交互 HTTP协议基础 HTTP请求 requests 分析HTTP响应 HTTP协议基础 超文本传输协...

  • Python 高级 9 HTTP协议

    浏览器访问服务器的过程、HTTP协议、开发者工具、HTTP请求报文协议分析、HTTP响应报文协议分析、长连接和短连...

  • http协议那些事

    1.输入网址后发生了什么2.http协议详解3.https协议分析4.http2协议分析5.了解http36.后台...

  • web安全读书笔记

    web安全读书笔记----HTTP协议 对于HTTP协议的分析主要从三个方面:HTTP头、HTTP请求方法、HTT...

  • http协议

    http协议要细分的话可以写成几本书,本文只简单了解1.什么是http协议?2.分析一次http协议的应用过程; ...

网友评论

      本文标题:HTTP协议分析

      本文链接:https://www.haomeiwen.com/subject/flgspttx.html