[转]常识:输入网址之后发生了什么(常识,但是

作者:金沙易记域名4166am

1. 率先是输入网站

  以 www.facebook.com 为例

  2. 浏览器查找域名对应 IP

  2. 1 DNS 查找进程:

  浏览器缓存——浏览器会记录 DNS 风度翩翩段时间(2-30 分钟不等,视浏览器而定)

  系统缓存——浏览器里没找到 DNS 缓存,这事浏览器做一个连串调用(window 下是 gethostbyname)。如察觉相配则动用。(与此对相应 host 恶意威逼校勘攻击)

  路由器缓存——路由器也是有 DNS 缓存(缓存你上过的网址,所以一时路由器须求开展 DNS 刷新)

  ISP DNS 缓存——接下去是在 ISP(互连网服务提供商)的 DNS 服务器的缓存上探索。

  递归查找——DNS 缓存里没有的话,ISP DNS 服务器会先后从根域名服务器(root)、.com 拔尖域名服务器、推特域名服务器获取 IP(平日缓存内都会有,所以这一步日常不会发生)

  2. 2 多 IP 域名 DNS 查询应用方案

[转]常识:输入网址之后发生了什么(常识,但是谁又能说明白呢?)。  循环 DNS——单个域名、七个 IP 列表循环应对 DNS 查询

  负载均衡器——多个特定 IP 的载荷均衡服务器(比如:反向代理服务器)担任监听诉求并转发给后边的七个服务器集群的某三个,达成三个服务器负荷均衡

[转]常识:输入网址之后发生了什么(常识,但是谁又能说明白呢?)。  地理 DNS——依照客商所处地理地点,重临分裂的 IP(应用:CDN)

  anycast——二个 IP 地址映射几个大意主机的路由技巧

  3. 发送乞求

  获得域名对应的 IP 后,就从头发送 HTTP (S)须求了.

[转]常识:输入网址之后发生了什么(常识,但是谁又能说明白呢?)。  央浼头详解:

[转]常识:输入网址之后发生了什么(常识,但是谁又能说明白呢?)。  GET  HTTP/1.1

  Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]

  User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]

  Accept-Encoding: gzip, deflate

  Connection: Keep-Alive

  Host: facebook.com

  Cookie: datr=1265876274-[...][转]常识:输入网址之后发生了什么(常识,但是谁又能说明白呢?)。; locale=en_US; lsd=WW[...]; c_user=2101[...]

  诉求告诉服务器:

  1. 本身要博取(GET)  (GET 的 U大切诺基L)那个页面

  2. Accept:小编能经受那么些品种的文本

  3. 小编动用的是何种操作系统上的哪些品种那一个版本的浏览器

  4. 确认选择何种格局的压缩文件

  5. 连接类型:短连接?长连接?

  6. 主机域名

  7. 发送存款和储蓄在本机的 cookies 新闻给服务器

  除了发送获取诉求,还是能够发送提交响应诉求(如:寻觅时要把搜索的内容生龙活虎并发放服务器进行管理(在呼吁U翼虎L 前面增添一定的客户参数),以取得一定的从头到尾的经过)

  注意:UENCOREL 前面加斜杠与不加斜杠的区分(文件夹与单个文件的区分)

  http://www.facebook.com

  http://www.facebook.com/

  当大家输入 http://www.facebook.com 时,浏览器会自动加多斜杠,保险U奥迪Q7L 的步步为营。

  当大家输入: 时,因为浏览器不知晓 folderOrFile 到底是文件夹依然文本,所以不能自动增多斜杠。当时,浏览器就不加斜杠直接访问地址,服务器会响应八个重定向,结果变成二遍没有必要的拉手。

  4. 重定向

  当我们输入不完全的网站 http://www.facebook.com 时,大概网址迁移做了重定向设置时,服务器会开展贰次重定向响应。

  上面是重定向之后回到的响应头:

  HTTP/1.1 301 Moved Permanently

  Cache-Control: private, no-store, no-cache, must-revalidate, post-check=0,pre-check=0

  Expires: Sat, 01 Jan 2000 00:00:00 GMT

  Location: http://www.facebook.com/

  P3P: CP="DSP LAW"

  Pragma: no-cache

  Set-Cookie: made_write_conn=deleted; expires=Thu, 12-Feb-2009 05:09:50 GMT;

  path=/; domain=.facebook.com; httponly

  Content-Type: text/html; charset=utf-8

  X-Cnection: close

  Date: Fri, 12 Feb 2010 05:09:51 GMT

  Content-Length: 0

  1. 301 永远重定向

  2. 新的 Location:……

  为什么要重定向,而不直接回到客商想看的内容吗?(既然服务器已经通过重定向知道了顾客须求什么样)

  答:原因之意气风发:与追寻引擎排名有关。你看,如若三个页面有三个地方,就如  和 ,找出引擎会感到它们是五个网址,结果导致每二个的搜索链接都削减从而减少排行。而寻找引擎知道 301 永世重定向是如何意思,那样就能把拜望带 www 的和不带 www 的地点归到同一个网址排行下。

  5. 新的乞请

  重定向之后会宣布三个新的收获诉求

  6. 服务器管理央求

  6. 1 web 服务器软件

  服务器操作系统连串:Linux(通常是厂商依照开源定制)、windows server 种类(微软)

  主要的服务器软件:IIS、Apache、Tomcat、JBOSS、Nginx、lighttpd、Tetty

  服务器软件的成效:接收、管理与响应央求(了然 CGI 的职能)

  6. 2 拍卖流程:

  web 服务器软件(如 IIS 只怕 Apache)选择到 HTTP 需要

  明确推行这一个央浼管理程序(二个能读懂恳求並且能生成 HTML 来扩充响应的主次)(举例:Asp.Net,PHP,RUBY……)来拍卖它

  诉求管理器阅读乞求头的参数和 cookies 音信

  更新服务器上的音讯:举个例子更新数据库新闻、服务端 cookies

  生成 HTML,压缩(gzip 或别的),响应恳求发送给客商

  7. 服务器发回八个 HTML 响应

  响应包含响应头(响应参数与音信)、响应包(主体文件)

  响应包选择一定措施加压力缩,整个响应以 blob 类型传输,响应头提醒响应包以何种情势收缩

  那么些响应头与重定向的响应头不太相通,这几个响应头还包蕴着缓存选项,cookies 设置和隐衷音信等

  8. 浏览器初始显得 HTML

  浏览器在还未完全选取全体 HTML 文件,就曾经初始体现页面了

  9. 浏览器获取别的文件

  浏览器分析 HTML 遇到要求下载的文本时,便再度向服务器(CDN)发送获取文件的诉求。

  注意:

  1. 动态页面不能够缓存,静态文件允许浏览器实行缓存。

  2. 静态文件本地有缓存时直接从本地读取

  3. 呼吁响应头内富含着静态文件保留的按时,浏览器知道下载的静态文件要静默保留多短期。

  4. 响应头还只怕有静态文件的 ETag(相当于版本号),当浏览器发掘倡议的静态文件的响应头的 ETag 与现成的缓存文件不符时,便会再也向服务器获取静态文件。

  10. 浏览器发送异步(AJAX)恳求

  web 2.0 的一大特色正是页面显示完全后顾客端照旧与劳动器端保持联系(keep-alive)

  浏览器实行一定的 JS 代码会给服务器发送异步诉求,获取最新的动态音讯,使得页面能维系较新的动静。

  HTTP 是三个呼吁-响应左券,独有在顾客端发送央浼,服务器端手艺做出响应,而无法积极把音讯依旧文书档案件发生给顾客由此,要想维持页面处于最新的事态,须要定期进行轮询(准时发送 AJAX 央求以创新页面内容)

  AJAX 要求十一分便于校订,且顾客特别便于本人制作和出殡和安葬 AJAX 诉求,所以未有验证码的从未有过 IP 限制条件的投票正是三个小游戏了(参照职业室三遍刷票:自身定义 IP,本人定期发送 AJAX 须求,然后票就哗哗的上了)。

  优化小方案:假使服务器被轮询时不曾新新闻,它就不理这么些顾客端。而当倡议未有超时的动静下假设接纳了该客商的新信息,服务器就找到未产生的乞求,把新消息作为响应发送给顾客端(那样就无需频仍地响应央浼了)

 

 

来自: www.jianshu.com

 

本文由金沙易记域名4166am发布,转载请注明来源

关键词: