简单说一下,用户访问一个url的过程

第一步,解析域名,找到IP
(1)浏览器会缓存DNS一段时间,一般2-30分钟不等。如果有缓存,直接返回IP,否则下一步。
(2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件。如果找到,直接返回IP。否则下一步。(在计算机本地目录etc下有一个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也可以修改hosts上网或破解软件)
(3)进行了前面几步的本地查询无果,只能借助于网络。路由器一般都会有自己的DNS缓存,ISP服务商DNS缓存,这时一般都能够得到相应的IP。如果还是无果,只能借助于DNS递归解析了。
(4)这时,ISP的DNS服务器就会开始从根域名服务器开始递归搜索,从.com顶级域名服务器,到baidu的域名服务器。
到这一步浏览器就获得了IP。在DNS解析过程中,常常会解析出不同的IP。比如电信的是一个IP,网通的则是另一个IP。这是采取了智能DNS的结果,降低运营商间访问延时,在多个运营商设置主机房,就近访问主机。电信用户返回电信主机IP,网通用户返回网通主机IP。当然,劫持DNS,也可以屏蔽掉一部分网点的访问。

第二步,浏览器与网站建立tcp连接
浏览器利用IP直接与网站主机通信。浏览器发出tcp连接请求,主机返回tcp应答报文,浏览器收到应答报文发现ack标志位为1,表示连接请求确认。浏览器返回tcp确认报文,主机收到确认报文,三次握手,tcp链接建立完成。

第三步,浏览器发起默认的get请求
浏览器向主机发起一个HTTP-Get方法报文请求。请求中包含访问URL,还有一个user-agent用户浏览器操作系统信息,编码等。值得一提的是accept-encoding和cookies项。accept-encoding一般采用gzip,压缩之后传输html文件。cookies如果是首次访问,会提示服务器建立用户缓存信息,如果不是,可以利用cookies对应键值,找到相应的缓存,缓存里面放着用户名,密码和一些用户设置项。

第四步,显示页面或返回其他
如果返回状态码200 ok,表示服务器可以相应请求,返回报文,由于在报头中content-type为“text/html”,浏览器以html形式呈现,而不是下载文件。 但是,对于大型网站存在多个主机站点,往往不会直接返回请求页面,而是重定向。返回301,302以3开头的重定向码,浏览器重新第一步访问即可。
补充一点的就是,重定向是为了负载均衡或者导入流量,提高SEO排名。利用一个前端服务器接受请求,然后负载到不同的主机上,可以大大提高站点的业务并发处理能力;重定向也可将多个域名的访问集中到一个站点;由于像baidu.com,www.baidu.com会被搜索引擎认为是两个网站,照成每个的链接数都会减少从而降低排名,永久重定向会将两个地址关联起来,搜索引擎会认为是同一个网站,从而提高排名。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值