请求响应流程

1. 用户打开浏览器
2. 地址栏输入我们需要访问的网站网址(url)
3. 浏览器通过DNS服务器获取即将访问的网站IP地址
浏览器解析用户输入的URL地址—>域名+端口号
(1)浏览器会先检查本地缓存中有没有这个域名对应的IP,怎么找:chrome://net-internals/#dns
(2)找系统的hosts文件中有没有这个域名
(3)如果都没找到,会对DNS服务器发起一个系统调用
4. 浏览器发起一个对这个IP的请求
(1)浏览器会通过一个本地的随机端口建立一个与服务器指定端口之间的连接通道
(2)浏览器会将客户端的一些信息打上一个“包”,将这个“包”通过这个链接通道发送到服务端(这个“包”叫做请求报文)
5. 服务器接受到这个请求,进行相应的处理
(1)“包”通过服务器指定端口进入到Web Server(Apache);(三次握手,确保连接可靠)
(2)打开客户端提交过来的“包”,拿到包里面的请求路径;
(3)根据请求的路径对文件的扩展名找到文件的MIME Type,在Apache的conf文件夹中有一个mime.type文件,里面对应了不同扩展名对应的MIME Type;
(4)判断文件类型是否为静态文件,如果是静态文件则直接读取这个文件的内容,将文件的内容返回回去;如果不是静态文件,交给对应的“外包公司”,“外包公司”会读取对应文件的代码并执行代码,最后将执行结果返回给WebServer;
(5)服务端会把要发给客户端的数据打上一个“包”,将这个包再通过之前的连接通道发回给客户端。(这个包叫做响应报文)
6. 服务器将处理完的结果返回给客户端浏览器
7. 浏览器将服务端返回的结果呈现到界面上
(1)打开服务端返回过来的“包”,找到包里面的Content-Type,这个属性告诉我们服务端返回给我们的是什么文件,以及以什么方式进行的编码;
(2)根据Content-Type决定如何处理响应的内容
(3)如果是html则渲染到界面上,如果其中有请求又会重新走上面的这一套路线。

你可能感兴趣的:(请求响应流程)