过程大概可以分为以下五部分
1. 用户输入网址,进行DNS解析,找到对应的IP地址.
2. 通过IP找到对应的服务器地址,请求建立TCP链接
3. 浏览器发送HTTP请求到服务器
4. 服务器收到HTTP请求,调用自身方法,返回HTTP请求内容
5. 浏览器收到HTTP内容并渲染页面,数据全部接收完以后断开TCP链接。
DNS解析
当我们输入一个域名的时候浏览器是不能直接找到对应的服务器的, 需要我们通过DNS把域名解析, 才能找到对应的服务器IP.
具体的行为过程为:
1. 会去浏览器查找是否有DNS缓存,如果有解析完成.如果没有会查找本地host文件.
2. 查找本地host文件 是否有映射关系, 如果有 直接完成对应的解析.如果没有会查找LDNS
3. 从 lcal DNS 去查询, 如果查询到 直接解析完成.会递归的往上查询,直到查询到顶级DNS
4. 如果本地host 和 LDNS 都没有查询到 , 则去外地的LDNS 去查询, 直到完成最终的解析.(当然如果都没有查询到浏览器会返回DNC解析失败)
TCP三次握手
大致行为过程:
1. 客户主动去 active open 服务端,发送需要,服务端被动打开
2. 服务端收到SYN序号,并发送最新的给客户端
3. 客户端回复服务端,告诉他我收到了,然后两边再进行HTTP通讯