http协议:三 (1)键入网址再按下回车,后面究竟发生了什么
1、浏览器从地址栏的输入中获得服务器的 IP 地址和端口号;
2、浏览器用 TCP 的三次握手与服务器建立连接;
3、浏览器向服务器发送拼好的报文;
4、服务器收到报文后处理请求,同样拼好报文再发给浏览器;
5、浏览器解析报文,渲染输出页面。
HTTP 协议基于底层的 TCP/IP 协议,所以必须要用 IP 地址建立连接;
如果不知道 IP 地址,就要用 DNS 协议去解析得到 IP 地址,否则就会连接失败;
建立 TCP 连接后会顺序收发数据,请求方和应答方都必须依据 HTTP 规范构建和解析报文;
为了减少响应时间,整个过程中的每一个环节都会有缓存,能够实现“短路”操作;
虽然现实中的 HTTP 传输过程非常复杂,但理论上仍然可以简化成实验里的“两点”模型
问题
DNS域名解析不需要发请求,建立连接吗? ip和域名是多对多的关系
回复:
dns请求是专门的dns协议,使用udp发送,因为是udp所以不需要建立连接。
第四个包到第六个包,为什么又进行了一次tcp连接呢,而且这个端口号是52086,这个是浏览器的特性吗?
回复:
因为http/1连接传输效率低,所以浏览器一般会对同一个域名发起多个连接提高效率,这个52086就是开的第二个连接,但在抓包中只是打开了,还没有传输。
tcp 三次握手后的连接是怎么保持住的?还有 http 头里面的 keep alive,它怎么就让连接 hold 住了的?是一个连接对应一个线程还是怎么回事?
回复:
tcp连接是用socket api打开的,只要不调用close,就会一直打开,在打开的时间里就可以收发数据。
keepalive只是个“指示”,告诉客户端这个连接不会立即调用close关闭,它是对应连接的,与线程无关。
1:一次HTTP请求由几次TCP请求完成?
2:TCP的建连为什么是三次握手?
3:TCP的断连为什么是四次挥手?
4:为什么说HTTP比TCP性能差一些?
5:HTTP和TCP的优缺点是什么?
6:HTTP和TCP的应用场景是什么?为什么这么用?
原文地址:https://www.cnblogs.com/xrxc/p/15128633.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- iOS逆向之OpenSSH登录iPhone
- linux中SUID,SGID与SBIT的奇妙用途详解
- 详解Linux文件操作知识点
- Linux中nohup与&的用法和区别详解
- Linux中有效地管理进程的8个命令
- Centos7 下安装python3及卸载的教程
- Linux使用VIM编辑器的方法
- Centos安装MYSQL8.X的教程
- Linux使用join -a1来合并两个文件
- ZFS是什么?使用ZFS的理由及特性介绍
- centos7.x 部署主、从DNS服务器问题
- Linux查看History记录加时间戳的小技巧
- Trash-Cli:Linux上的命令行回收站工具
- Linux中的tcpdump命令示例详解
- Linux系统文件的默认权限和特殊权限