浏览器的通信能力

Sat, July 27, 2024 - 2 min read

用户代理

浏览器可以代替用户完成http请求,代替用户解析响应结果,所以我们称之为:

用户代理 user agent

在网络层面,浏览器拥有:

  • 自动发出请求的能力
  • 自动解析响应的能力

自动发出请求的能力

  1. 用户在地址栏输入url地址,并按下回车。浏览器自动解析url,并发出一个GET请求,同时抛弃当前页面。
  2. 用户点击了页面中的a元素。
  3. 用户点击了提交按钮。
  4. 当解析HTML遇到了<link><img><script><video><audio>等元素 ,发起GET请求获取资源。
  5. 当用户点击刷新。

自动解析响应的能力

浏览器不仅能发送请求,还能够针对服务器的各种响应结果做出不同的自动处理,常见的处理有:

  1. 识别响应码
  2. 根据响应结果做不同的处理,例如解析Content-Type

基本流程

AJAX

原生能力提供了边界。

Ajax指在web应用中异步向服务器发送请求,实现方式分为XMLHttpRequest(XHR)和Fetch。

arrayBuffer是一个只读的、空间连续的、定长字节数组

上传文件并监控进度

fetch没提供对应API,只有XHR可以做

ChatGPT

CPT的回答使用流式读取