浏览器输入URL访问服务器过程

我们来看看在自己的浏览器中输入URL:www.sina.com.cn,连接都经历了哪些过程

域名解析DNS

域名是方便人们记忆的,不然那么多网站,人怎么可能记住所有的ip地址。

www.sina.com.cn这个是新浪的域名,在输入该域名之后,进行的就是域名解析了,经过解析之后,变成相应的ip地址。

但是,很多人都会问,在网上查到新浪的IP地址,在自己的电脑上输入为什么就连接不上。原因是大的门户网站可能不止一个ip地址,根据不同的网络他们会有很多的ip来做集群。有的是通过dns来实现负载均衡,有的是用squid来实现的。这里就不对其展开了。

Socket建立连接

Socket连接是通过ip和端口建立的。当dns解析完成,我们就拥有了目标IP和端口号,这样我们就可以开始建立连接,接下来就是大家都清楚的3次握手,这里就不展开了,相关的内容可以去查看网络通信的三次握手。

通信

连接成功建立后,浏览器开始向web服务器发送请求,这个请求一般是GET或POST命令,之后,web服务器接受到这个请求,进行处理,返回给浏览器相应的内容。这之间传送的就是数据包了。至于数据包在网络分层中的漫游经历接下来会具体的讲述

关闭连接

关闭连接就是大家熟悉的网络通信的4次挥手。

数据包在网络中的漫游经历

首先,你要清楚网络分层模型,OSI7层模型,但对我来说我通常习惯去记忆TCP/IP的四层模型:应用层,传输层,网络层(网际层IP),网络接口层(链路层),不同版本的教材对这四层的名字不一样。

TCP/IP参考模型的相关常用协议

应用层

FTP、TELNET、HTTP

SNMP、TFTP、NTP

传输层

TCP

UDP

网络层

IP、ARP、RARP

注意:这里ARP和RARP是有的教材放到网络层的,但是在OSI模型当中,被划分到链路层,但是讨论ARP协议究竟是属于哪一层一点意义都没有。

 

1.      在应用层中,HTTP协议传输的是web的内容,根据当前的需求和动作,我们确定要发送的数据内容,从而形成了应用层的报文data。

2.      这些报文通过传输层发送,tcp协议或者udp协议,在头部加上指定的端口和其他的信息,这样就组成了传输层的数据报文,单位就是segment。注:TCP和UDP的区别

3.      带发送的数据段送到网络层,在网络层被打包,包头内部含有源以及目的ip地址,该层数据发送单位被成为packet。

4.       在网络层数据被打包后,网络层就开始负责将这样的数据包在网络上传输。如何穿过路由器,最终到达目的地址,这里就是需要知道路由表和路由选择算法了,在这里不做展开。注:数据包中会有一个最大路由跳数,如果在各个路由传输的时候,个数超过了这个跳数,那么就会丢弃这个数据包

5.       经过路由选择,查找到下一跳的ip地址后,还要知道mac地址,这个mac地址作为链路层数据被装进数据报的头部,这个时候的数据单位是Frame

注:在这个链路层中,有一个比较重要的协议ARP,在同一网内可能包含有多个主机,所以如果仅仅知道ip地址是没有用的,这个时候会发生ARP请求,该请求包含源IP和MAC地址以及目的IP和MAC地址,在网内进行广播, 所有的网内主机会检查自己的ip和mac,如果对应,就建立连接传送数据,这样也就避免了,传输过来的数据需要发送到同一网内的所有主机。

附:TCP/IP模型中各层主要的协议简介

 

物理层

设备,中继器(repeater,集线器(hub)。对于这一层来说,从一个端口收到数据,会转发到所有端口。

 

链路层

MAC地址表,一个ip下可能会有多个主机,交换机通过目的MAC地址知道应该把这个数据转发到哪个端口。而不会像HUB一样,会转发到所有滴端口。。

 

网络层

四个主要的协议:   

网际协议IP:负责在主机和网络之间寻址和路由数据包。     

地址解析协议ARP:获得同一物理网络中的硬件主机地址。     

网际控制消息协议ICMP:发送消息,并报告有关数据包的传送错误。     

互联组管理协议IGMP:被IP主机拿来向本地多路广播路由器报告主机组成员。

 

传输层

两个重要协议 TCP UDP

 

应用层

基于tcpTelnet FTP SMTP DNS HTTP 

基于udpRIP NTP(网落时间协议)和DNS DNS也使用TCPSNMP TFTP

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浏览器访问HTTP服务器过程通常遵循以下步骤: 1. 解析URL浏览器接收到用户输入URL,首先需要解析URL。解析URL包括解析协议类型(如HTTP),主机名(域名),端口号(若未指定则使用默认端口号80),路径等信息。 2. 建立TCP连接:浏览器使用解析得到的主机名和端口号,通过TCP/IP协议与服务器建立连接。浏览器会构建一个发送到服务器的SYN包,服务器收到后会返回一个ACK包作为确认。 3. 发送HTTP请求:一旦TCP连接建立成功,浏览器会构建HTTP请求报文,并发送给服务器。请求报文包括请求行、请求头部和请求体。 4. 服务器处理请求:服务器接收到浏览器发送的HTTP请求报文后,会根据请求行中的方法和路径进行相应的处理。服务器可能会查询数据库、执行业务逻辑等操作。 5. 服务器发送HTTP响应:服务器处理完请求后,会构建HTTP响应报文,并将其发送回浏览器。响应报文包括状态行、响应头部和响应体。 6. 接收和渲染响应:浏览器接收到服务器返回的HTTP响应报文后,会解析其中的HTML、CSS、JavaScript等内容,并根据这些内容渲染页面。 7. 关闭连接:一旦浏览器完成页面渲染,或者用户关闭了页面,浏览器会关闭与服务器的TCP连接。 这些步骤是浏览器访问HTTP服务器的基本过程,其中涉及到URL解析、TCP连接建立、HTTP请求和响应的交互等环节。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值