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则渲染到界面上,如果其中有请求又会重新走上面的这一套路线。
请求响应流程
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 2系列200 OK请求已成功,请求所希望的响应头或数据体将随此响应返回。201 Created请求已经被实现,而且...
- 简单总结了一下用户从浏览器请求网址(HTTP请求),到服务器处理请求返回数据过程,如有错误或表述不正确,欢迎讨论交...
- 我把今天两个晨读内容总结到了一起,我觉得无论是“成名要趁早”还是案例中不按常理出牌的谈判技巧,这些所谓离经叛道...