inharest / hello-world

Just another repository
0 stars 0 forks source link

HTTP #26

Open inharest opened 7 years ago

inharest commented 7 years ago

什么是HTTP? http是一种协议。 使用场景:

  1. http客户端发起请求,创建端口。
  2. http服务器在端口监听客户端请求。
  3. http服务器向客户端返回状态和内容。

访问环节:

  1. Chrome搜索自身的DNS缓存。
  2. 搜索操作系统吱声的DNS缓存(浏览器没有找到缓存或缓存已经失效)。
  3. 读取本地的HOST文件。
  4. 浏览器发起一个DNS的一个系统调用。
  5. 浏览器获得域名对应的IP地址后,发起HTTP“三次握手”。
  6. TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了,使用了比如说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP 1.o的一个协议。
  7. 服务器端接收到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是慕课网页面,就会把完整的HTML页面代码返回给浏览器。
  8. 浏览器拿到了慕课网的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片等静态资源,他们同样也是一个个HTTP请求,都需要经过上面的主要七个步骤。

dns系统调用:

  1. 宽带运营商服务器查看本身缓存
  2. 运营上服务器发起一个迭代DNS解析的请求 运营商服务器把结果返回操作系统内核同时缓存起来 操作系统内核把结果返回浏览器 最终浏览器拿到了www.imooc.com对应的IP地址