一次HTTP请求的分析
来源:互联网 发布:chart.js 饼图 编辑:程序博客网 时间:2024/06/05 11:20
一次http请求到底发生了什么?有多少个逻辑?有多少次交互?本文借助wireshark简单阐述。
整体图
从一个全新的http请求发起,到获取到报文,到结束,一共有三个步骤。大图如下。
建立连接
http协议是基于tcp协议的,因此在数据传输之前,也要经过tcp的三次握手,可以看到第一部部分
就是三次握手的部分(这里有两次重复,应该是刷新了两次并发请求了)
传输数据
这里分为两部分,http协议是典型的请求/应答,因此http首先将请求发送,举本文的例子,就是发送http请求字符串:
Request URL:http://www.test.com.cn/seo/keywords.phpRequest Method:GETStatus Code:200 OKRemote Address:120.26.107.40:80
上面的意思是请求keywords.php这个页面,http应用会将这一串数据打包成tcp报文进行传输。
服务器端接收到请求后,通过本身的apache或者tomcat解析这个文件后,就将http响应用tcp封装后返回。
HTTP/1.1 200 OKDate: Tue, 24 Jan 2017 07:53:12 GMTServer: Apache/2.2.15 (CentOS)X-Powered-By: PHP/5.3.3Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Pragma: no-cacheContent-Length: 15Connection: closeContent-Type: text/html; charset=UTF-8这里是返回值
上面两个步骤对应的就是tcp的流量图。
结束请求
在页面完成请求后,客户端就会发送关闭连接(具体关闭视情况而定),就是典型的四次挥手。在http应用可能只是socket.close();但是这一个关闭请求,会调用四次的tcp挥手请求。对应图所示
总结
一次请求到这里就完整并且结束了,由于不同的情况会话保持时间、请求方式不同可能会有不同的流量图,大致基本规律会如本文所示。
0 0
- 一次HTTP请求的分析
- 一次http完整的请求tcp报文分析
- 一次完整的HTTP请求
- 一次完整的http请求
- 一次完整的HTTP请求
- 一次HTTP请求的背后
- 一次完整的http请求
- 一次完整的http请求
- 一次完整的http请求
- 一次完整的http请求
- 一次完整的HTTP请求
- 一次完整的http请求
- 一次完整的HTTP请求
- Tomcat源码分析--一次HTTP请求过程
- 一次完整的Http请求过程
- 一次完整的http请求过程
- 一次完整的Http请求过程
- 一次完整的Http请求过程
- 「一句话经典」JavaWeb中的JSP
- Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系
- Oracle数据库 -- 多表连接
- 求绝对值最大值 (sdut oj)
- Xcode中Command Line Tools安装方法
- 一次HTTP请求的分析
- LintCode Minimum Subtree java solution
- 1095. Cars on Campus (30)
- Imagination
- 动力节点——数组(十九)
- Java7特性:Switch("")
- 接口
- Java入门到精通视频学习总结
- 【备忘】黑马IOS就业班+基础班(第一期)视频下载