HTTP请求基础

格式化数据块称为HTTP报文

请求报文:从客户端发往服务器的HTTP报文,只有请求起始行+请求首部,没有请求主体
响应报文:从服务器发往客户端的报文,包含响应起始行+响应首部+响应主体
在这里插入图片描述
在这里插入图片描述
HTTP报文通过传输控制协议(TCP)连接:

  • 无差错的数据传输
  • 按序传输
  • 未分段的数据流
    在这里插入图片描述

HTTP事务=请求命令(HTTP方法)+响应结果
在这里插入图片描述

从输入URL到浏览器显示全过程

简单描述:通过URL获取目标IP地址+TCP端口号 >> 建立TCP/IP连接 >> 传输HTTP报文

URL举例:(HTPP端口默认80,HTTPS端口默认443)
index.html表示web服务器的资源,资源名称为统一资源标识符(URI)
在这里插入图片描述
在这里插入图片描述
浏览器处理请求图解
在这里插入图片描述

  1. 输入URL
  2. 浏览器从URL解析服务器主机名
  3. IP解析:通过DNS服务获取服务器主机名对应的IP地址
  4. 从URL解析端口号
  5. 与IP对应的端口建立TCP连接
  6. 浏览器发送一条HTTP请求报文
  7. 服务器向浏览器回送一条HTTP响应报文
  8. 关闭连接,浏览器显示页面

URL语法、URL组件及含义

URL结构方案://服务器位置/路径
在这里插入图片描述

怎样的方案请求哪个地方什么资源,简称(我瞎定义的):How - Where - What

URL语法通用格式<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>(由多个组件段组成)

  1. <scheme>:方案名(协议)不区分大小写,也就是说HTTP://... = http://...

  2. <user>:<password>:FTP协议需要用户名和密码,比如:ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu(如没有提供,浏览器会给一个默认值)

  3. <host>:<port>:主机和端口号

  4. /将URL划分为一些路经段<path>;<params>),path和params为一组,用;隔开。比如:http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true

  5. <query>查询组件,用&连接多个键值对。
    在这里插入图片描述

  6. <frag>片段组件,前面跟一个#
    在这里插入图片描述
    在这里插入图片描述

URL快捷方式

相对URL

URL有两种方式:绝对的相对的
在这里插入图片描述

解析相对URL的第一步:分解URL,即:将相对URL和基础URL划分成组件段

将相对URL转换成绝对URL如图:缺啥补啥(相对URL中缺的组件就用基础URL中的组件段补上)
在这里插入图片描述

自动扩展URL

浏览器主动进行主机名扩展(匹配自动补齐)、历史访问扩展(匹配URL前缀)

URL编码和字符规则

基于适配各种不同的协议 + 供人类阅读 + URL完整的需求,引入了转义机制,将不安全字符编码为安全字符再进行传输。

US-ASCII字符集集成转义序列对数据进行编码,实现可移植性和完整性。

%后跟着两个表示字符ASCII码16进制数,举例:
在这里插入图片描述

保留字符:
在这里插入图片描述

URL方案

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84067.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84067.shtml
英文地址,请注明出处:http://en.pswp.cn/web/84067.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

9. TypeScript 泛型

TypeScript 中的泛型使开发者能够编写灵活、可重用的代码&#xff0c;同时保持类型安全。它们允许动态定义类型&#xff0c;确保函数、类和接口可以适用于任何数据类型。这有助于避免重复&#xff0c;提高代码的模块化&#xff0c;使其既类型安全又具备适应性。 一、认识泛型 …

Apache Iceberg与Hive集成:分区表篇

一、Iceberg分区表核心概念与Hive集成原理 1.1 分区表在大数据场景的价值 在大规模数据分析中&#xff0c;分区表通过将数据按特定维度&#xff08;如时间、地域、业务类型&#xff09;划分存储&#xff0c;可显著提升查询效率。Apache Iceberg的分区表设计融合了Hive的分区理…

SAST + IAST + DAST 全链路防护体系构建方案

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 1. 生命周期分层嵌入&#xff08;防御纵深&#xff09; 阶段工具防护重点集成触发点编码阶段SAST源码漏洞&#xff08;硬编码密钥、SQL注入模式&#x…

pnpm link如何不踩坑

前提一&#xff1a;我有一个source-project源码库&#xff0c;有一个develop-project项目库。想使用pnpm link对source-project进行本地调试。 前提二&#xff1a;source-project源码库已打包 本地调试详细步骤如下&#xff1a; 1、检查是否配置了系统环境变量&#xff0c;P…

vue3 javascript 多字段求和技巧

在 Vue 3 中&#xff0c;如果你需要在一个组件中处理多个字段的求和&#xff0c;你可以通过计算属性&#xff08;computed properties&#xff09;或者方法&#xff08;methods&#xff09;来实现。这里我将展示两种主要的方法&#xff1a; 方法 1&#xff1a;使用计算属性&am…

【LeetCode】每日一题 —— No.3405

LeetCode 3405 统计恰好有 K 个相等相邻元素的数组数目&#xff08;DP 构造型&#xff09; 题目概述 我们需要统计长度为 n 的数组 arr 满足如下条件的方案数&#xff1a; 每个元素在区间 [1, m] 之间恰好存在 k 个位置 i (1 ≤ i < n) 满足 arr[i] arr[i - 1] 也就是说…

Elsa Workflows: .NET 的开源工作流引擎简介

文章目录 Elsa Workflows&#xff1a; .NET 的开源工作流引擎核心定位与理念关键特性与优势当前 (Elsa 3) 的已知限制/待完善项总结 Elsa Workflows&#xff1a; .NET 的开源工作流引擎 Elsa Workflows 是一个开源的、模块化的 .NET 库集合&#xff0c;旨在为 .NET 应用程序提…

linux虚拟机yum命令报错解决方案

问题 假如出现了这样的问题&#xff0c;可能是虚拟机yum库存在问题 解决方法 1、打开cmd&#xff0c;输入ssh root地址&#xff0c;比如ssh root192.168.222..111&#xff0c;选yes&#xff0c;输入虚拟机密码 2、使用yum repolist,查看仓库状态&#xff0c;status下面如果是…

C++ 第一阶段 基本语法 - 第一节:变量与数据类型详解

目录 一、变量与数据类型概述 1.1 什么是变量&#xff1f; 1.2 数据类型分类 二、基本数据类型详解 2.1 整型&#xff08;int, short, long&#xff09; 2.1.1 常见整型类型 2.1.2 代码示例 2.1.3 注意事项 2.2 浮点型&#xff08;float, double&#xff09; 2.2.1 浮…

CppCon 2017 学习:CNL: A Compositional Numeric Library

你说的这段关于浮点数的问题总结得很精准&#xff0c;我帮你整理一下&#xff0c;让理解更清晰&#xff1a; The Problem with Floating-Point&#xff08;浮点数的问题&#xff09; 复杂的表示结构 浮点数由符号位 &#xff0c;有效数&#xff08;significand/mantissa&…

linux基础重定向及组合重定向

一、基础重定向操作符 ‌类别‌ ‌操作符‌ ‌含义‌ ‌示例‌ ‌备注‌ ‌标准输出‌ > 覆盖写入 stdout 到文件 ls > file.txt 文件不存在则创建&#xff0c;存在则清空内容 >> 追加 stdout 到文件末尾 date >> log.txt 保留原有内容 ‌标准…

佰力博科技与您探讨铁电分析仪适用场景

铁电分析仪是一种用于测试和研究铁电材料性能的精密仪器&#xff0c;其适用场景非常广泛&#xff0c;涵盖了材料科学、物理学、电子工程等多个领域。 1、材料科学与工程 铁电分析仪广泛应用于铁电材料的研究&#xff0c;包括薄膜、厚膜、块体材料以及电子陶瓷等。它能够测试材料…

JVM 内存模型与垃圾回收机制全解析:架构、算法、调优实践

Java 作为一门面向对象的编程语言&#xff0c;其核心优势之一是 “一次编写&#xff0c;到处运行” 的跨平台特性。这一特性背后&#xff0c;Java 虚拟机&#xff08;JVM&#xff09;扮演着至关重要的角色。JVM 不仅负责解释执行字节码&#xff0c;还通过内存管理和垃圾回收机制…

自然语言处理相关基本概念

基本概念章节总结 一、语言学&#xff08;Linguistics&#xff09; 定义 研究语言的本质、结构和发展规律的科学&#xff0c;涵盖语音、文字、语法等属性。分支包括历时语言学、共时语言学、描述语言学等。 核心内容 分析语言的形态、句法、语义等层面&#xff0c;如词素&…

Vue购物车应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计购物车界面4. 创建Vue实例和数据模型5. 实现购物车功能5.1 从本地存储加载数据5.2 监听数据变化保存到本地存储5.3 实现全选/反选功能5.4 计算选中商品的总价和总数量5.5 实现修改商品数量功能5.6 实现删除商品功能5.7 实现结算功能…

双因子认证如何让Windows系统登录更安全?SLA操作系统双因素认证解决方案深度解析

引言&#xff1a;数字化转型下的身份认证危机 在云计算与远程办公普及的2025年&#xff0c;企业信息系统正面临前所未有的安全挑战。微软Azure Virtual Desktop漏洞事件、Citrix数据泄露等安全事件频发&#xff0c;暴露出传统密码认证体系的致命缺陷。据《2025年云安全威胁报告…

FPGA基础 -- Verilog语言要素之值集合

一、Verilog 值集合&#xff08;Value Set&#xff09; Verilog 是一种面向硬件建模的描述语言&#xff0c;为了更真实地模拟硬件行为&#xff0c;它并不仅仅像 C 语言那样只有 0 和 1 两种值&#xff0c;而是采用了四值逻辑&#xff08;Four-valued logic system&#xff09;…

开源一个芯片自由的脱机下载器

一、什么是脱机下载器 简单来说&#xff0c;脱机下载器就是在不连接电脑、不用专业软件的情况下&#xff0c;也能帮你把程序烧录进芯片的工具。只要插上电源、按个按钮&#xff0c;固件就自动下载进 MCU&#xff0c;非常适合量产、售后、维修等场景。 二、芯片自由的背后&…

Rust 学习笔记:关于模式匹配的练习题

Rust 学习笔记&#xff1a;关于模式匹配的练习题 Rust 学习笔记&#xff1a;关于模式匹配的练习题问题一问题二问题三 Rust 学习笔记&#xff1a;关于模式匹配的练习题 参考视频&#xff1a; https://www.bilibili.com/video/BV1YxojYJESm 问题一 以下代码能否通过编译&…

利用tkinter函数构造MD5加密的可视化操作界面

GitHub文档地址&#xff1a; https://github.com/gao7025/auto_entry_md5.git 引言 利用tkinter构造一个图形界面的创建函数&#xff0c;主要实现了文件选择、MD5加密处理、结果预览和下载等功能。下面是主要涉及的功能模块&#xff1a;主框架、文件选择部分、MD5加密部分、结…