浏览器输入URL发生了什么

首先在浏览器中输入一个网址(www…com)点击回车。
1:DNS域名解析,把网址转换为IP地址。

1.首先去查找浏览器是否有这个DNS缓存,如果有缓存就直接返回IP,然后DNS解析完成。没有就进行下一步的逐级查询。

2.浏览器没有,然后去查询本地操作系统是否有DNS缓存,有就直接返回IP,没有就再继续查询。

3.然后再查询本地DNS服务器是否有这个网址的DNS缓存,有就返回IP,没有就再继续查询。

4.查询根域名DNS服务器,是否有这个网址的DNS缓存,有就返回IP,没有就再继续查询。

5.最后就是查找com顶级域名服务器,是否有这个网址的DNS缓存,有就返回IP。

6.最后把查询的结果告诉客户端。

2.建立TCP连接(三次握手)
1.客户端得到DNS解析到的域名IP,然后和目标服务器建立TCP连接。
2.进行三次握手:

第一次:客户端(浏览器)给服务器发出请求连接报文(SYN,sek)。
第二次:服务器收到了客户端发送过来的请求报文,然后这时候服务端就知道了客户端具有发送信息的能力,然后服务器就给客户端发送响应报文(SYN,ACK.sek)。
第三次:客户端接收到了服务端的报文,然后这时候客户端就知道服务端具有发送和接收的能力,客户端再给服务端发送一次报文(SYN,ACK,sek),然后服务端接收到报文,服务端就知道客户端也具有接收和发送的能力,然后就可以进行数据的传递了。

三次握手可以防止资源的浪费。
例如:客户端给服务端发送一次请求连接报文,这时候因为网络原因,服务端没有收到,然后客户端又一次发送了请求,第二次收到了,然后服务器页做了响应,最后客户端页得到了响应,完成后就关闭了连接,然后这时候第一次的请求到达了服务端,就建立新的连接了,因为没有第三次握手,此时客户端忽略服务端发来的确认,也不发送数据,则服务端一致等待客户端发送数据,浪费资源。

3.客户端给服务端发送HTTP请求
客户端设置请求方式(POST、GET…),Keep-alive,是否携带本用户系统和浏览器的信息。然后就是Cookie,如果是第一次访问的话,这时候服务器会创建Cookie,然后服务器响应的时候,就会把Cookie返回给客户端,客户端再进行保存,第二次访问该网站的时候就会携带Cookie。

4.服务端发出HTTP响应
服务端接收到请求报文后,然后进行数据的接收和处理,然后返回相应的数据。
5.浏览器解析,然后渲染界面。

6.释放连接(四次挥手)

第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号,主动释放连接,进入终止等待状态1。
第二次挥手:服务端收到FIN报文,然后发送ACK报文,然后将服务器上未传送完的数据发送完,进入关闭等待。这时候处于半关闭状态,意思就是客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然能够接受。(服务器接收到客户端的释放连接报文,然后发出确认收到报文)
第三次:服务器把最后的数据发送完后,服务器就给客户端发送释放连接报文。
第四次:客户机接收到报文后,发出确认,然后等待一段时间后,释放TCP连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有昵称...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值