饥人谷技术博客

从输入网址到看到网页

2017-07-23  本文已影响0人  悬崖边的半只脚

当我们上网的时候,会在浏览器里输入一个URL地址,也就是我们俗称的网址,比如www.baidu.com。然后敲一下回车,百度的首页就展示在浏览器上了,今天我们就来分析一下,从敲击回车按钮到百度首页展示,这中间到底发生了什么。

基本过程

  1. DNS解析
  2. TCP链接
  3. 发出http请求
  4. 服务器接受http请求并返回处理结果
  5. 浏览器接受服务器的返回结果并解析展示
  6. 链接结束

DNS解析

DNS解析的过程就是将你输入的网址指向它所对应的计算机的ip地址,当我们输入www.baidu.com时,DNS会将这个网址解析成它对应的计算机ip地址,例如100.20.201.33,这个ip地址对每台计算机来说都是唯一的。

TCP链接

当浏览器的请求到达服务器之后,tcp会在双方之间建立一个通信通道,使得双方可以进行通信,这部分内容不是很熟悉,所以就不深入去描述了。

发出http请求

这部分的工作是有客户端完成的,也就是浏览器,浏览器构建http请求报文通过tcp协议发送给浏览器的过程就是http请求。http请求主要由三部分组成:请求行、请求报头和请求正文

下面的部分是请求报头

在这个过程中还会涉及到请求的方法,常用的请求的方式有GET POST DELETE PUT 这些方法之间的区别在这里就不展开叙述了。这时候,我们的请求就通过浏览器发送出去了。
服务器接受请求返回结果
自然而然这部分对应的就是后端工程师眼中的HTTP。后端从在固定的端口接收到TCP报文开始,它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。这一部分工作一般是由Web服务器去进行,比如apache、nginx、tomcat等。
HTTP响应报文也是由三部分组成:状态码,响应报头响应报文

状态码

状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。
平时遇到比较常见的状态码有:200, 403, 404 500
响应报头

上面的部分就是响应头

响应报文

服务器返回给浏览器的文本信息,通常HTML, CSS, JS, 图片等文件就放在这一部分。

浏览器解析响应报文

浏览器会将接受到到html,css,js进行解析,然后将它们展示在页面上,当然,这部分的过程也有很多可以探究的内容,这里就不详细的描述了。

链接结束

当所有内容都返回给客户端之后,客户端和服务端的链接就关闭了,因为http是无状态的,如果再次请求,就需要重新建立链接。

在这些流程全部完成后,我们就看到我们想要看到的内容了。写的有点简单了,也参考了一些优秀的博客作者的文章。

上一篇 下一篇

猜你喜欢

热点阅读