1.为什么http协议要基于TCP实现?
Tcp协议一种面向连接的,可靠的,基于IP的传输层协议
http协议就是建立在TCP/IP协议上的一种应用。
HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,可以重传)
2.请简要描述一次完整的http请求的过程(浏览器中输入网址,到最后用户看到完整的页面,中间发生了什么事情,做了什么处理)(底层就是tcp协议)
- 输入网址,回车后,需要先进行DNS域名解析,得到IP网址
- 根据IP地址,找到服务器,开始建立TCP连接,三次握手
- 浏览器发送HTTP请求,服务器响应,浏览器得到html代码
- 浏览器解析HTML代码,并请求html代码中一些其他的资源,如图片、css、js
- 浏览器完成页面的解析渲染,呈现给用户
- http服务完成,关闭TCP连接,四次挥手
4.什么是DNS解析?将域名转换成ip地址
DNS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,这样递归查找之后,找到了,给我们的web浏览器
5.TCP三次握手(双方确认)
第一次握手:浏览器向服务器发起建立连接的请求
第二次握手:服务器告诉浏览器,我同意你的连接请求,同时我也向你发起建立连接的请求
第三次握手:浏览器也告诉服务器,我同意建立连接。
至此,双方都知道对方同意建立连接,并准备好了进行数据传输,也知道对方知道自己的情况。接下来就可以传输数据了
6.TCP四次挥手(客气挽留)
- 客户端发起断开连接的请求
- 服务器确认收到的请求,但是会要求等待,查看数据传输是否完成
- 服务器确认数据传输完成,告知客户端可以断开连接
- 客户端收到消息,告知服务端