当你在浏览器输入一个网址,如http://www.taobao.com,按回车之后发生了什么?

总的思路:在浏览器地址栏键入URL,按下回车之后发生的几个事件:

    1)浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址;

    2)解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;

    3)浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器;

    4)服务器给出相应,把对应的html文本发送给浏览器;

    5)释放TCP连接;

    6)浏览器将该文本显示出来。

具体的实现:
1、浏览器根据域名查询域名对应的服务器的IP地址。
根据域名查询IP地址的顺序如下:浏览器DNS >>> 操作系统DNS缓存 >>> 本地(ISP)域名服务器缓存 >>> 根域名服务器。

在请求到根域名服务器之后,根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址。

本地域名服务器向顶级域名服务器dns.com进行查询,顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。

本地域名服务器向权限域名服务器dns.abc.com进行查询,权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。

最终查询到IP地址之后,本地域名服务器将IP地址告诉给浏览器。

2、浏览器主机根据IP地址与服务器建立TCP连接。

建立TCP连接需要进行三次握手。

(1)浏览器主机 >>> 服务器:SYN=1,ACK=0,seq=x;

(2)服务器 >>> 浏览器主机:SYN=1,ACK=1,seq=y,ack=x+1;

(3)浏览器主机 >>> 服务器:ACK=1,seq=x+1,ack=y+1。

3、浏览器将访问请求封装为一个HTTP请求报文,通过TCP协议发送给服务器。

HTTP请求报文的方法是get方式;如果浏览器存储了该域名下的Cookies,那么会把Cookies放入HTTP请求头里发给服务器。

4、服务器收到请求并响应,生成一个HTTP响应报文,通过TCP协议发送给浏览器主机。

HTTP响应报文的头部包含了状态码(Status-Code),三位数字,有5大类。HTTP响应报文内容则是网页的编码内容。

5、浏览器得到响应报文之后,对响应报文进行解析。

在浏览器没有完整接受全部HTML文档时,它就已经开始显示这个页面了。如果是个静态的页面,那到此就基本结束了。如果是是动态的,那么在浏览器显示HTML时,会获取嵌入在HTML中的对象,浏览器会发送获取请求来重新获得这些文件。

6、浏览器异步请求其他资源。

在分析HTML时,若发现网页引用了其他资源,例如:css、图片等,浏览器则发起HTTP请求,得到响应资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海音乐学院计算机考研难吗,上海音乐学院考研难吗?一般要什么水平才可以进入?...

问:从上海音乐学院毕业的学生就业怎么样?值不值得报考?答:想要了解更多毕业生就业情况见>>>就业报告汇集总之,上海音乐学院就业率相对来说是比较良好的,如果大家对此学校感兴趣的话,可…

Java-消息框显示两整数加减乘除

//两个整数加减乘除 //Qi Ming Liu,October 7,2015 import javax.swing.JOptionPane; public class Calculater { public static void main(String args[]) { //用户输入的两个数。 String firstNumber,secondNumber; //两个加数,以及和、差、积、商。 int numb…

DTO – 服务实现中的核心数据

最近实习,初接触项目,对好多的东西不是很清楚,看了下面的这篇博客对一个Web服务的实现中使用DTO及MO有了比较清楚的了解!!! http://www.cnblogs.com/loveis715/p/4379656.html 在三层模型中,ser…

Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)

概要 学完了Map的全部内容,我们再回头开开Map的框架图。 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid…

计算机在社区健康档案管理中的作用,某社区卫生中心对辖区居民的健康档案信息进行电子化。一直建档居民的年龄范围在1..._考试资料网...

某社区卫生中心对辖区居民的健康档案信息进行电子化。一直建档居民的年龄范围在18岁以上,但某一份健康档案中的年龄却出现了15岁;某一份健康档案中所记录的心律为1000次/分,某一份健康档案中记录的性别伟男性,但在疾病中记录有子宫肌瘤。1.信…

Select count(*)和Count(1)的区别和执行效率比较

在MySQL中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理由是Count( *)会带来全表…

html5语异性元素,异性的5句性暗示

茫茫人海,我们或者擦身而过,或者在不经意间相遇,相识,相知。在某些特定的时刻,一句话就足以决定一段缘分。1.今晚我一个人住。这是一句百分百的性暗示语言。今晚,显然是约定时间。一个人住,表明…

支付相关备忘

2015年10月9日 11:02:12 支付宝/微钱包等等可能在成功/失败回调多次 因此每一次处理的时候都要验证订单是否已经处理过了 如果订单是已经成功状态就丢弃回调, 如果订单是失败状态,或未成功状态就继续接受回调转载于:https://www.cnblogs.com/iLoveMyD/p/4863354.html

Spring@Autowired注解

import org.springframework.beans.factory.annotation.Autowired; public class Boss { Autowired private Car car; Autowired private Office office; … } 原来一直以为一个Autowired 注释就可以对所有的类成员变量、方法及构造函数进行自…

计算机重装系统后黑屏,电脑重装系统后开机黑屏怎么办

‍最近有用户反映自己在重装电脑系统后,开机出现了黑屏的现象,检查后发现硬件设备没有故障,那么是怎么回事呢?小编分析得出,这个问题应出在显卡上,有可能是显示器不支持该显卡显示的分辨率或者是重装系统后…

北大“四大疯人院”之说

本文转自自己看到的一个一篇文章,突然明白原来名校的学生真的并不是与生俱来比别人很厉害,而是一点一滴的积累,一点一滴的拼搏,持之以恒终成一极!!!那时候我开始慢慢明白,在这个世界…

计算机图像变为红色是什么故障,电脑显示器变成红色怎么办

在有些时候我们的电脑显示器变成红色了,这该怎么办呢?下面就由学习啦小编来为你们简单的介绍电脑显示器变成红色的原因及解决方法吧!希望你们喜欢!电脑显示器变成红色的原因及解决方法:(1)显卡接触不良故障:显卡接触不良通常会引起无法开机且…

iOS开发中@property的属性weak nonatomic strong readonly等介绍

property与synthesize是成对出现的,可以自动生成某个类成员变量的存取方法。在Xcode4.5以及以后的版本,synthesize可以省略。 1.atomic与nonatomicatomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器…

山师2019计算机真题,2019山师附中推荐生面谈真题(山东师范大学附属中学)

山师附中2019年推荐生考试于5月25日、26日进行,第一天上午笔试,第二天上午面试。面试包括三项内容:(1) 科学素质、实践能力及发展潜能测试。(2) 综合面试。(3) 心理素质测试(合格性测试,不计入总分)。面试包括三项内容&#xff1a…

CMD窗口的cd命令

cd /? 显示帮助信息 cd \ 返回到当前所在的根目录中去 cd .. 返回到上一级的目录中去 cd 目录名 可以进入下一层目录 d: 改变当前驱动器的目录

git版本管理工具学习

1.git版本管理工具作用:a.备份b.像时光机一样回到过去,防止错误删除c.多端共享d,独当一面和团队协作 2早起的版本管理工具:CVS,集中式管理工具 github是git的一个托管网站:GitHub是一个托管网站&#xff0…

湖南师大计算机学院院长,董新汉(数学与计算机科学学院)老师 - 湖南师范大学 - 院校大全...

董新汉董新汉老师的简介董新汉,男,1955年生,博士学位(CUHK),现任数学与计算机科学学院院长,数学教授,博士研究生导师。1978年3月入湖南师范大学数学系学习,毕业后留校任教至今,其间先后离开到江西师范大学数学系进修研究生课程三年和到香港中文大学数学系攻读博士学位三年。主要…