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

《HTTP权威指南》 第1-2章 HTTP和URL基础

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.xdnf.cn/news/14698.html

相关文章:

  • ArkUI-X跨平台技术落地-华为运动健康(二)
  • 要在 Linux 不联网服务器 上部署并运行 Gitee 上的 vue-vben-admin 项目,并且该项目使用的是 pnpm 管理依赖
  • pythonday50
  • Cornerstone3D 2.x升级调研
  • RK3568笔记八十三:RTMP推流H264和PCM
  • 技术与情感交织的一生 (八)
  • SpringBoot自动化部署全攻略:从Shell脚本到云原生实践
  • WebRTC(六):ICE协议
  • 爬虫技术:数据挖掘的深度探索与实践应用
  • Appium入门
  • SonarQube 25.6 完整指南:部署、使用与 CI/CD 集成
  • CppCon 2016 学习:The Exception Situation
  • 6.IK分词器拓展词库
  • AI智能体应用市场趋势分析
  • WinForms视频播放开发实战指南
  • 【数据库】在线体验KingbaseES平台,零门槛学习,并快速体验Oracle增改查全基础功能
  • python web开发-Flask 重定向与URL生成完全指南
  • 代码随想录打卡第三十天 动态规划
  • 论文笔记 <交通灯> IntelliLight:一种用于智能交通灯控制的强化学习方法
  • 性能测试|数据说话!在SimForge平台上用OpenRadioss进行汽车碰撞仿真,究竟多省时?
  • 物联网传输网关、RTU、DTU及SCADA系统技术解析
  • Vue-8-前端框架Vue之应用基础响应式数据和计算属性
  • React 中实现获取未来5天的天气预报
  • FPGA基础 -- Verilog语言要素之标识符
  • 同态加密类型详解:部分同态加密,全同态加密
  • 在 CEP插件界面 打开网页 简单方法
  • 使用 Tailwind CSS 进行样式设计,并与 Next.js 和 TypeScript 无缝集成
  • Vue-Router笔记
  • Linux基本指令
  • 【计算机常识:Windows】--CMD命令详解