http请求过程~~~

“探”求过程,“究”其内涵_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。
“探”求过程,“究”其内涵
||暂无简介
总评分2.7|
浏览量1808555
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢求过程~~~!_百度知道http的那些事
http请求过程
&&&本文是参考了多篇博客,并结合自身工作中遇到的实际问题总结过后写出来的,希望能帮助到有兴趣关注这个的人
&&&此处以访问百度首页为例,当我们在浏览器地址栏中输入并回车后,我们马上能看到百度的首页,虽然这个过程很短,但这背后究竟发生了什么呢?
现简要地理一下这背后的执行流程:
1.域名解析
2.客户端浏览器发送http请求
3.服务器响应http请求,并向客户端浏览器返回html代码
4.客户端浏览器得到html代码并进行解析,同时请求html代码中的所包含的资源,例如js、css样式表、图片等
5.浏览器对整个页面进行渲染,并将渲染后的页面呈现给用户
下面逐一进行分析
当我们访问这个域名时,实际上浏览器不知道它是啥(浏览器事先缓存的不作考虑),浏览器真正需要的是IP地址,你给浏览器IP,它就根据这个IP去寻找对应的服务器,并尝试建立连接(所以说你在地址栏里直接输入百度对应的ip地址也是可以访问的)。那为什么浏览器最终识别了并访问成功了呢?嗯,这个时候就得靠DNS了(DomainNamingSystem),说简单点,它就是一个根据域名获取对应ip的服务器。那么我们再来看看,当我们访问时,域名的解析过程
浏览器缓存&&&首先,浏览器会优先查找浏览器自身DNS缓存,如果找到了便直接利用找到的ip并建立连接(浏览器缓存DNS的时间比较短,通常是1到30分钟,且能缓存的数量有限,不同的浏览器厂商设置的初值也 有所不同)
系统缓存&&& 当浏览器缓存找不到域名对应的ip,接下来浏览器便会做一个系统调用(win系统是gethostname),于是从系统缓存中获取域名对应的ip.顺便说一下,win系统中host的设置在C:\Windows\System32\drivers\etc\hosts中,譬如你可以设置 127.0.0.1 ,当然你这样设置后,下次再访问,那就不会再出现百度的首页了,很有可能是404(微笑脸&( ̄︶ ̄)&)
路由器缓存&&&若是系统缓存找不到,紧接着便将查询请求发至路由器,路由器通常会有自己的缓存
ISP DNS缓存&&&当路由器缓存没找到,则转向ISP的DNS服务器,在这一步,通常是可以找到相应的缓存记录的。ISP的DNS服务器会从根域名服务器开始进行递归的搜索,从顶级域名.com服务器开始到baidu的域名服务器…
-倘若上诉的所有DNS缓存均没有找到这个域名所对应的ip地址,那么浏览器自动给出错误信息,不同的浏览器返回的错误信息不一样,火狐的便显示为找不到服务器。
Attention:
&&&&在应用部署在局域网中,且并没有在域名注册商中进行注册时,局域网内的用户要通过域名访问服务器上的应用,那就必须得在本机的hosts文件中绑定相应的域名了,假如你在IP地址为172.168.0.413的服务器上部署了passport.co应用,你如果没有在hosts文件中绑定:
&&&&172.168.0.413
passport.co
&&&&那么,当你调passport的应用时,浏览器就可能找不到passport.co对应的ip地址(找到了也不是你想要调的那个应用),找不到ip地址就无法建立TCP连接,从而无法调用该服务。因此,对于局域网内部署的应用,要想调该应用,必须得让浏览器能解析出该应用(域名)所对应的ip地址
百度的动态页面在浏览器的缓存中会很快过期,因此,浏览器会将请求进一步发送到baidu的服务器,下面这是一个典型的http请求内容
请求及响应的主要内容
Request URL:
Request Method:GET
Status Code:200 OK
Remote Address:115.239.210.27:443
Accept:text/html,application/xhtml+xml,application/q=0.9,image/webp,/;q=0.8
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:zh-CN,q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:BAIDUID=6FC319C34F472D035D9F:FG=1;
BIDUPSID=6FC319C34F472D035D9F; PSTM=;
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0. Safari/537.36
**Connection:**keep-alive
**Content-Encoding:**gzip
**Content-Type:**text/ charset=utf-8
**Date:**Mon, 29 Aug :08 GMT
**Expires:**Mon, 29 Aug :15 GMT
**Server:**bfe/1.0.8.14
&&&&其中,涉及的主要过程是:浏览器向服务器发送请求,请求类型为GET(常用的是GET和POST,当然还有其它6种,如HEAD,DELETE,TRACE等),的域名被解析后的ip地址为:115.239.210.27,服务运行的端口号为:443。百度的服务器在接收到请求后,发给客户端浏览器响应,status为响应码,其中200代表请求成功;响应的内容为:text/编码方式为:utf-8。
&&&&对于响应的状态码,以下作简要介绍:
1XX类:信息状态码,如100,101
2XX类:成功状态码,如200:OK
3XX类:重定向状态码
301:永久重定向,由于地址栏中的url未变,故此种为隐藏重定向
302:临时重定向,地址栏中的url会变为新的url
304:Not Modified 未修改。举个栗子,譬如,当本地缓存的资源文件(如css,js,某些图片等)和请求服务器上的资源相比较时,发现并没有任何修改,那么服务器便会返回给浏览器一个304的状态码,也就是告诉浏览器,你本地有这些资源文件了,不用再请求我这边啦
4XX类:访问错误状态码
404:这是见得最多的吧,大名鼎鼎404—NOT FOUND,翻译过来就是浏览器请求的url资源并不存在
5XX类:服务器端错误状态码
500:Internal Server Error服务器内部错误
502:Bad Gateway 网关(代理服务器)无法请求到后端服务器,也可以说代理服务器不可用
504:Gateway Timeout 此状态码表明代理服务器可以连上后端服务器,但后端服务器在指定时间里没有给代理服务器做出响应
浏览器解析响应的html代码,并请求相应的资源
&&&&浏览器获取到服务器返回的html代码后(response中可以看到)。我们假定返回的是baidu.html,浏览器获取到baidu.html后并不会马上进行渲染,它首先会去寻找html中的静态资源,倘若碰到js/css/image等静态资源时,浏览器便会继续请求服务器来下载该资源(服务器ip地址可能会不同,这个有可能用到cdn加速)。当浏览器中有该种类型的静态资源文件且服务器端未作修改时,会给浏览器返回304的状态码,从而浏览器会直接读取本地的缓存文件。
浏览器渲染页面
&&&&当html中所需的资源全部加载完毕后,浏览器便开始渲染页面,用户所看的便是渲染过后的页面
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7660次
排名:千里之外
原创:21篇
评论:15条
(5)(3)(1)(3)(2)(1)(3)(1)(2)(1)为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 卢芳爆被求婚过程 的文章

 

随机推荐