HTTP

Posted sunmarvell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP相关的知识,希望对你有一定的参考价值。

想象用浏览器打开imooc.com网站,HTTP走过的环节:

1.首先,是对imooc.com域名解析,
  (1.1)浏览器搜索浏览器自身的DNS缓存。
  (1.2)如果浏览器没有找到自身的DNS缓存或之前的缓存已失效,那么浏览器会搜索操作系统自身的DNS缓存。
  (1.3)如果操作系统的DNS缓存也没有找到,那么系统会尝试在本地的HOST文件去找。
  (1.4)如果在HOST里依然没有找到,浏览器会发起一个DNS的系统调用,即一般向本地的宽带运营商发起域名解析请求。这后面又可以试情况分很多步骤,第一,宽带运营商服务器会首先查看自身的缓存,看是否有结果,如果没有,那么运营商服务器会发起一个迭代DNS解析请求(根域,顶级域,域名注册商),最终会返回对DNS解析的结果。运营商服务器然后把结果返回给操作系统内核(同时也缓存在自己的缓存区),然后操作系统把结果返回给浏览器。
  (1.5)以上的最终结果,是让浏览器拿到imooc.com的IP地址,DNS解析完成。

2.然后,在浏览器获得域名的IP地址后,发起“三次握手”,建立TCP/IP连接。

3.在TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了。比如,用HTTP的GET方法请求一个根域里的某个域名,协议可以采用HTTP 1.0 。

4.服务器端接受这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果以数据的形式返回给浏览器,如果是imooc.com网站的页面,服务器就会把完整的html页面代码返回给浏览器。

5.浏览器拿到了imooc.com这个网站的完整HTML页面代码,在解析和渲染这个页面的时候,里面的javascript、CSS、图片等静态资源,它们同样也是一个个HTTP请求,都需要经过上面的步骤来获取。

6.浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现出来。

以上是关于HTTP的主要内容,如果未能解决你的问题,请参考以下文章

HTTPHTTP协议的请求与响应

HttpHttp请求的流程

HTTPHTTP1.0HTTP1.1HTTP2.0HTTPS

HTTPHTTP POST GET 本质区别详解

httphttp的方法,状态码和组成部分

HTTPHTTP请求体中的四种格式,requests库发送post请求