当前位置: 首页 > news >正文

深度贴:前端网络基础及进阶(2)

浏览器为什么称为用户代理?

浏览器如何代替用户发送http请求?

带着这些问题,让我们潜入本文章⬇️

一、用户代理

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

在网络层面,浏览器拥有两大核心功能:

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

浏览器代替用户发出Http请求具体的场景包括:

  1. 在地址栏输入一个url地址,并按下了回车。
  2. 用户点击页面<a>标签元素:浏览器会拿到a的href地址,并发送get请求,同时抛弃当前页面。
  3. 当用户点击了提交按钮<button type = "submit"> </button>:浏览器会获取到其按钮所在表单元素<form>,拿到它的action属性地址,同时拿到它的method属性,然后把表单中的数据组织到请求体中,发出指定方法的请求,同时抛弃当前页面。
  4. 当解析HTML的时候遇到<link><img><script><video><audio>等元素:浏览器会拿到对应地址,发出get请求
  5. 当用户点击刷新:浏览器会拿到当前地址,以及当前页面的url,发送一次get请求,同时抛弃当前页面。

浏览器用户代理自动封装http请求通用工作流水线如下图:

DNS部分和TCP部分流程会在后续文章中介绍,读者理解大致流程即可。

二、Asychronous JavaScirpt and XML——AJAX

通过JavaScript发送Http请求,不论是任何AJAX的API,本纸都要被封装为Http格式报文(请求行、请求头、请求体)。 Http报文具体格式参见:深度贴:前端网络基础及进阶(1)-CSDN博客

「AJAX」简介和历史参考这篇文章:Ajax:现代JS发起http通信的代名词-CSDN博客。

在浏览器通过JavaScript发送Http请求的API包括「XMLHttpRequest API」和「Fetch API」

XMLHttpRequest API处于兼容老版本的状态,不再更新;Fetch API在不断发展,是ES6+当下及未来的趋势。

「Fetch」除了无法监控进度,其他功能都可以替「XMLHttpRequest API」

1.XMLHttpRequest API

2.Fetch API

http://www.lryc.cn/news/618441.html

相关文章:

  • 【网络运维】Linux和自动化: Ansible基础实践
  • 【接口自动化】-11-接口加密签名 全局设置封装
  • 回归预测 | Matlab实现CNN-BiLSTM-self-Attention多变量回归预测
  • 如何使用gpt进行模型微调?
  • iceberg FlinkSQL 特性
  • 古风修仙主题登录页面设计与实现 附源码 ~~~
  • Iptables 详细使用指南
  • 【CSS3】录音中。。。
  • 飞算JavaAI 2.0.0深度测评:自然语言编程如何重塑Java开发范式
  • 基于 gRPC 的接口设计、性能优化与生产实践
  • 《软件工程导论》实验报告一 软件工程文档
  • 新手向:Python编写简易翻译工具
  • Jmeter性能测试过程中遇到connection reset的解决方案
  • 易语言模拟真人鼠标轨迹算法 - 非贝塞尔曲线
  • HTTP应用层协议-长连接
  • 意图驱动——机器人大脑的正确驱动方式
  • 大模型驱动的服务革命:2025智能客服机器人选型与落地路径
  • 5-终端安全检测和防御技术
  • 【北京见闻】2025年世界机器人大会——所见所闻及所思
  • Node.js 精选:50 款文件处理与开发环境工具库
  • 最终章【1】Epson机器人篇
  • Ansible 自动化介绍
  • 什么时候用WS(WebSocket),什么使用用SSE(Server-Sent Events)?
  • windows git安装步骤
  • SSH浅析
  • Redis面试精讲 Day 19:Redis缓存设计模式与策略
  • 攻防世界—easyTornado
  • Jenkins 实战指南-项目自动构建部署全流程通关
  • 云原生作业(tomcat)
  • Flutter屏幕和字体适配(ScreenUtil)