浏览器中输入URL之后发生了什么

假如在浏览器中访问百度,即输入URL为“www.baidu.com”,会发生什么?

1.比较笼统的来说:

1.浏览器解析我们输入的URL信息,得到各部分信息,默认的请求方法是GET方法
2.根据得到的信息与百度服务器进行TCP连接
3.浏览器进行 Request 的拼接过程

String request = "GET / HTTP/1.1\r\n
				  Host: www.baidu.com\r\n
				  Content-Length: 0\r\n
				  \r\n"

4.浏览器通过TCP协议中的连接,把Request发送给百度的服务器
5.浏览器等待百度的服务器发回响应
6.根据响应内容,把结果展示在浏览器界面上

2.细致的说:

主要描述上面的六个步骤的细节。

1.浏览器解析我们输入的URL信息,得到各部分信息

应用层:
首先,浏览器通过解析,得到目标ip和目标端口,假设ip和端口分别是 61.35.148.93 和 80 ,此时浏览器调用
new Socket(61.35.148.93, 80);

2.TCP连接

TCP开始三次握手:客户端给服务器发送TCP段,再封装成 IP 包,通过目标 ip + 路由表,确定下一跳 ip,再根据 ARP 表 + 下一跳 ip,确定目标 MAC 地址,封装成以太帧,在广播域中广播以太帧,路由器对以太帧进行解包/分用,再经封装,广播,到达下一个路由器,直到到达目标地址。
此时,Socket返回。

3.浏览器准备HTTP请求,进行 Request 的拼接过程

准备好后,浏览器调用
out = socket.getOutputStream();
out.write(request);
通过刚才建立的 TCP 连接,按照字节流形式发送 HTTP 请求

4.浏览器通过TCP协议中的连接,把Request发送给百度的服务器
5.浏览器等待百度的服务器发回响应

浏览器调用
in = socket.getInputStream();
根据 HTTP 协议读取响应
String responseLine = …;
Map<String, String> headers = …;
String body = …;
根据 Content-Type,知道内容是 html 格式。
根据 HTML 标准,解析 html 内容并显示

6.根据响应内容,把结果展示在浏览器界面上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值