http及相关知识
http及相关知识
http 就是一种协议;计算机之间要共同遵守协议规则,才能彼此之间进行相互通信。
- http客户端发起请求,创建端口;
- http服务器在端 监听客户端请求;
- http服务器向客户端返回状态和内容;
一次完整的HTTP请求经历的所有环节
就拿https://www.baidu.com/为例,以下对一次完整的HTTP请求经历的所有环节进行了详细的讲解:
- chrome搜索自身的dns缓存,如果有,看缓存是否过期?如果过期或没有则缓存结束;(chrome://net-internals/#dns (chrome://net- internals/#dns));
- 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已失效);
- 读取本地的HOST文件;
- 浏览器发起 个DNS的一个系统调 ;
- 4.1 宽带运营商服务器查看本身缓存;
- 4.2 运营商DNS服务器代替浏览 发起一个迭代DNS解析的请求;
先找到根域的DNS的IP地址;得到顶级域com域的IP地址;
向com域的DNS服务 查询,得到baidu.com这个域的IP地址;(域名注册商提供,如:万网,新网等);
从baidu.com这个域的DNS服务 得到我们的域名对应的ip地址;
运营服务商把结果返回给操作系统内核,同时缓存起来;操作系统内核把结果返回浏览 ;最终浏览器拿到 www.baidu.com (http://www.baidu.com) 对应的ip地址域名解析完成后;
- 浏览器获得域名对应的ip地址后,发起TCP“三次握手”;
TCP连接请求:该请求通过层层路由设备到达服务器端以后,进入到网卡,然后进入到内盒的TCP/IP协议栈,再通过防火墙的过滤,最终到达web的服务端;建 TCP和IP的链接; - TCP/IP 连接建立起来后,浏览器就可以向服务器发送HTTP请求 ,使用了比如说,用HTTP的GET 法请求一个根域里的一个域名;
- 服务器端接收到请求,根据路径参数,经过后台的一些处理之后,把处理后的结果数据返回给浏览器,比如百度的HTML页面代码返回给浏览器;
- 浏览器拿到HTML页面代码,在解析和渲染这个页面的时候,里面的JS,CSS,图片静态资源,它们也同样是一个个HTTP请求,需要经历1-7的步骤;
- 浏览器根据拿到的资源,对页面进行渲染,下图是页面渲染的过程: