HTTP的一个流程 以chrome为例
- Chrome搜索自身的DNS缓存 查看DNS缓存chrome://net-internals/#dns
- 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)
- 读取本地的HOST文件
- 浏览器发起一个DNS的一个系统调用
浏览器发起DNS步骤- 宽带运营商服务器查本身缓存
- 运营商服务器发起一个迭代DNS解析请求
运营商服务器把结果返回操作系统内核同事缓存起来
操作系统内核把结果返回浏览器,最终浏览器拿到了对应的ip地址
-
浏览器获得域名对应的IP地址后,发起HTTP'三次握手'
TCP请求:握手- 客户端:你能听到嘛,唠唠
- 服务端:能听到,唠唠
- 客户端:行唠唠
TCP/IP 连接建立起来后,浏览器就可以向服务发送HTTP请求了使用了比如说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP 1.0的一个协议
服务器端接受了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是慕课网的页面就会把完整的HTML页面代码返回给浏览器
浏览器拿到了慕课网的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS,CSS、图片静态资源,他们同样也是一个个HTTP请求都需要经过上面的七个步骤
浏览器根据拿到的资源对页面进行渲染,最终吧一个完整的页面呈现给了用户
graph TB
响应-->http头和正文信息
请求-->http头和正文信息
常用请求方式
get
post
状态码
成功的状态码:
200 – 服务器成功返回网页
304 – 未修改
失败的状态码:
404 – 请求的网页不存在
503 – 服务器暂时不可用
500 – 服务器内部错误