从tcp的角度看,打开一个网页到底发生了什么
使用wireshark进行抓包分析:新建表达式过滤器,选择协议,字段,匹配方式,应用就能筛选出想要的数据包。
一个示例:(tcp.srcport == 1523 or tcp.dstport == 1523)。 其中1523是tcp连接的本机端口
tcp基础知识:
tcp在传输大量数据时,以mss为单位对数据分块传输。在3次握手时,由通信双方商议确定mss。
Seq:本机维持的数据计数器;Ack:远程主机的数据计数器

本机ip:192.168.43.106 目的ip:183.232.231.17
主线:
1. 输入网址,按下回车,浏览器通过3次握手建立tcp连接,协商mss字段。

2. 利用tcp连接,传输http文本。由于网页的大小超过了mss,所以分多个段进行传输。

从本机发http请求,到接收完整的http响应,中间接收了多个tcp segment,并且本机对于tcp段的确认是批量的,即收到了2个段,只需要确认1次。
3. 传输完后,服务器主动关闭了连接。

副线:
需要注意的是,打开一个网页,浏览器会建立多个tcp连接。
下图是其中一个请求图片的连接:

本机发送rst包,直接断了连接。
从tcp的角度看,打开一个网页到底发生了什么的更多相关文章
- 用Java打开一个网页
BareBonesBrowserLaunch.java 从网上无意间看到的一个工具类,意思是打开一个URL,在不同的操作系统都通用. 1.使用 很简单: String url = "http ...
- 浏览器输入URL后,发生了什么?(打开一个网页会使用哪些协议?)
简单说来分为6个过程 1.DNS解析 互联网每一个服务器都是以ip地址作为界限的,并不是我们平时输入的url地址,就比如www.ccc.com这一个网址,当输入进浏览器之后就会由DNS解析将它转化成一 ...
- [code] python+selenium实现打开一个网页
转载自: http://www.cnblogs.com/fnng/archive/2013/05/29/3106515.html http://www.testwo.com/blog/6931 在ec ...
- 基于对话框的应用程序,点击button打开一个网页
核心:使用Webbrowser控件 加入一个新的对话框,右键 Insert ActiveX control,选中 双击对话框生成响应的类(Web).并为webbrowser绑定成员变量(m_Web) ...
- 用C++,调用浏览器打开一个网页
http://blog.csdn.net/heaven13483/article/details/9369029
- 浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. ...
- 【转】浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. ...
- 精读JavaScript模式(三),new一个构造函数居然发生了什么?
一.前言 上个月底,爸爸因为事故突然离世,说心里话,现在看到'去世','爸爸'这样的字眼,眼泪都会忍不住在眼眶打转,还是需要时间治愈.最近也只是零碎的看了下东西,始终沉不下心去读书,直到今天还是决定捡 ...
- 从一个开发的角度看负载均衡和LVS--FullNat
从一个开发的角度看负载均衡和LVS 在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务 ...
随机推荐
- 关于set和map迭代器支持的运算
问题: 曾经想遍历一个set遍历.当时是这样写的: set<int>::iterator b = a.begin()+1 后来发现程序报错.究其原因是,set迭代器不支持加减数操作. 查看 ...
- VS 编译后 install报错(error MSB3073)
vs编译出现如下错误: 错误 1 error MSB3073: 命令"setlocal H:\PCL_BACKUP\PCL\CMake\bin\cmake.exe -DBUILD_TYPE= ...
- 小程序之从后台取到数据后放入想要的标签list里
问题:事情是这样的,我有一个标签的功能,but 我怎么吧后台取到的数据放到我想要的标签里呢,而且是那种多个数据自己会加一个标签的内种,效果如下 解决:我们需要用到wx:for 这个东西呢是需要 ...
- input标签让光标不出现
<input class="red" readonly unselectable="on" > input点击变为搜索框,用form包住绑定搜索事 ...
- IIS字体 404错误
问题:最近在IIS上部署web项目的时候,发现浏览器总是报找不到woff.woff2字体的错误.导致浏览器加载字体报404错误,白白消耗了100-200毫秒的加载时间. 原因:因为服务器IIS不认SV ...
- JavaSE习题 第九章 输入输出流
问答题 1.如果准备读取一个文件的内容,应该使用FileInputStream还是FileOutputStream? FileInputStream 2.FileInputStream流的read() ...
- 给大一新生学习c程序的一些建议的一些建议
这是一篇给刚学习c程序的学弟们的一篇日志.如果想学好c程序,以及不想走太多弯路,希望能看一下这篇文章,如果说基础较好,或者说已经是大二,大三,这篇文章不会有什么帮助. 刚转到软件工程系,加了几个新生群 ...
- <script src="../build/browser.min.js"></script> 是用来里面babel工具把ES6的语法转成ES5
<!DOCTYPE html> <html> <head> <script src="../build/react.js">< ...
- 力扣(LeetCode)258. 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所 ...
- 用友u8采购发票如何取消审核
流程是应付系统---应付单据审核---过滤---选择日期+已审---选择相应发票---弃审