一、一次完整的http
1.域名解析
2.发起tcp的三次握手
3.建立tcp连接后发起http请求
4.服务器响应http请求,浏览器得到html代码
5.浏览器解析html代码,并请求html代码中的资源
6.浏览器对页面进行渲染呈现给用户
7.连接结束
二、域名解析
从网址到ip地址的转换,成为dns解析,dns解析是一个递归查询的过程,具体步骤如下(www.google.com)
1.首先在本地域名服务器(最近一台dns服务器)中查询ip地址
2.如果没找到,本地域名服务器会向根域名服务器发送一个请求
3.如果根域名服务器中也不存在该域名,但判定这个域名属于“com"域,则本地域名服务器会向com顶级域名服务器发送一个请求
4.如果com顶级域名服务器没有找到该域名,但判定这个域名属于'google.com'域,则本地域名服务器会向google.com域名服务器发送一个请求,以此类推
5.直到本地域名服务器得到域名对应的ip地址,并将其换存到本地,供下次查询使用
三、TCP三次握手执行流程
关键字:SYN:同步序列编号;ACK:确认字符;SEQ:序列号;
1.首先,服务端和客户端都是处于closed状态,然后服务端启动,监听端口,状态变为listen(监听)状态
2.客户端为了请求资源,发送链接,发送同步序列号SYN,此时客户端就变成了SYN-SEND状态
3.服务端接收到客户端请求之后,发送SYN和ACK,然后服务端状态就变成SYN-RCVD状态
4.客户端接收到信息之后,再次发送ACK,然后变成ESTABLISHED(已确认)状态,服务端接收到返回信息后,状态也变成了ESTABLISHED(已确认)状态
为什么TCP协议需要三次握手,主要原因是为了防止旧的重复链接引起混乱问题(避免重复链接)
我的理解:
1.服务端和客户端,首先服务端会启动并会监听端口
2.客户端会发送请求资源,发送链接,发送同步序列号SYN
3.服务端就会接收到请求资源,并返回一个【SYN,ACK】给客户端
4.客户端就会接收到这个信息,就会返回一个ACK
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具