计算机网络 之 【http协议】(域名、url、http协议格式与细节)

目录

[1 域名](#1 域名)

[1.1 域名的概念](#1.1 域名的概念)

[1.2 域名的核心作用](#1.2 域名的核心作用)

[1.3 域名的组成和分类](#1.3 域名的组成和分类)

[1.4 域名的工作原理](#1.4 域名的工作原理)

2.url(统一资源定位符)

标准结构

补充

示例

3.网络行为

4.http协议格式

请求报文

响应报文

关键机制


1 域名

1.1 域名的概念

域名 是互联网中用于标识和定位计算机或服务的易记的文本名称 ,它替代了难以记忆的数字IP地址(如 192.168.1.1 或 2404:6800:4005:805::200e),使人类能够更方便地访问网站、发送邮件或使用网络服务

1.2 域名的核心作用

(1)替代IP地址:计算机通过IP地址(如 93.184.216.34)通信,但数字难以记忆,域名(如 example.com)通过DNS解析为IP地址,实现"人类友好"的访问方式

(2)分层结构 :域名采用层级结构,从右到左依次表示范围从小到大(与日常阅读方向相反)

复制代码
www . sub . example . com
│     │     │       │
│     │     │       └── 顶级域名(TLD)
│     │     └── 二级域名(SLD)
│     └── 三级域名(Subdomain)
└── 主机名(Hostname,可选)

1.3 域名的组成和分类

  • 顶级域名

位于域名最右侧,分为两类:

通用顶级域名(gTLD):如 .com(商业)、.org(组织)、.net(网络)

国家代码顶级域名(ccTLD):如 .cn(中国)、.us(美国)、.jp(日本)

新通用顶级域名(new gTLD):如 .app、.blog、.online,提供更多选择

  • 二级域名

位于顶级域名左侧,是域名的核心部分,通常由注册者自定义

如 example 在 example.com 中

需通过域名注册商购买并注册,具有唯一性

  • 三级域名及子域名

位于二级域名左侧,用于进一步细分服务或组织结构(如 www、mail、blog)

mail.example.com:邮件服务专用子域名

shop.example.com:电商子站点

无需额外注册:子域名可由域名所有者自由创建(需配置DNS记录)

  • 完全限定域名

包含完整层级结构的域名(如 www.example.com.,末尾的点表示根域名)。

日常使用中通常省略末尾的点(如 www.example.com)

1.4 域名的工作原理

  1. DNS解析 :当用户在浏览器输入域名(如 example.com)时,计算机会向DNS服务器发起查询。DNS服务器最终返回对应的IP地址

    复制代码
    用户输入 → example.com → DNS查询 → 返回IP 93.184.216.34 → 浏览器访问该IP
  2. 域名与IP的映射关系:域名与IP地址是有对应关系的(一对一、一对多、多对一),浏览器最终通过该IP地址访问互联网中对应主机

2.url(统一资源定位符)

定义 :用于唯一标识互联网上资源的字符串,遵循标准化格式,便于客户端(如浏览器)定位和访问资源

标准结构

复制代码
协议://域名:端口/路径?查询参数#片段标识
组件 格式/示例 说明
协议 http:// https:// ftp:// file:// ws:///wss:// - 定义访问资源的网络协议类型 - 常见协议及默认端口 : ▸ http:// → 端口 80 ▸ https:// → 端口 443 ▸ ftp:// → 端口 21 ▸ file:// → 本地文件系统 ▸ ws://(非加密 WebSocket)/wss://(加密 WebSocket)
域名 www.example.com 192.168.1.1(不推荐生产环境) - 资源的服务器地址 - 支持域名或 IP 地址(IP 仅用于测试/内网环境)
端口 :80(可省略) :8080(非默认端口) - 服务器监听的端口号 - 省略规则 :当端口为协议默认值时(如 http:// 的 80)可省略 - 示例: ▸ http://example.com:80/ ≡ http://example.com/ ▸ https://example.com:443/ ≡ https://example.com/
路径 /blog/posts/1 api/users(相对路径) - 资源在服务器上的虚拟路径(不一定对应物理目录) - 路径规则 : ▸ 层级用 / 分隔 ▸ 绝对路径以 / 开头(如 /blog/1) ▸ 相对路径省略 /(依赖当前 URL 解析,如 blog/1) - 示例 :/blog/posts/1 可能由 Web 框架动态生成
查询参数 ?q=python&page=1 - ? 后跟键值对,用于传递参数(如搜索、分页) - 格式 :key1=value1&key2=value2 - 示例 :/search?q=python&page=1 表示搜索关键词为 python,第 1 页
片段标识 #installation - # 后的部分,指向页面内的锚点(如章节标题) - 示例 :/docs#installation 会滚动到页面中 id="installation" 的元素

补充

  1. 协议的加密性:

https:// 通过 SSL/TLS 加密数据传输,推荐用于所有需要安全性的场景(如登录、支付)

http:// 为明文传输,易被窃听或篡改

  1. 路径的虚拟性:

现代 Web 服务器(如 Nginx、Apache)可通过配置将 URL 路径映射到任意物理目录或动态路由(如 REST API 的 /api/users/1)

  1. 相对路径的解析:

相对路径(如 blog/1)会基于当前 URL 的路径解析。例如:

当前页面为 https://example.com/articles/,链接 blog/1 会解析为 https://example.com/articles/blog/1(可能返回 404)

更安全的做法是使用绝对路径(如 /blog/1)或根相对路径(如 //example.com/blog/1)

  1. 查询参数的编码:

特殊字符(如空格、/、?)需编码为 %XX 形式(如空格 → %20)

示例:/search?q=hello world 应编码为 /search?q=hello%20world
编码规则:将需要转码的字符转为 16 进制,然后从右到左,取 4 位 ( 不足 4 位直接处理 ) ,每 2 位做一位,前面加上 % ,编码成 %XY
不用记忆,网上有现成的编码解码工具

示例

URL 协议 域名 端口 路径 查询参数 片段标识
https://www.example.com/blog/1 https www.example.com 默认 443 /blog/1 无 无
http://localhost:8080/api?id=1 http localhost 8080 /api id=1 无
file:///C:/docs/report.pdf file 本地文件系统 无 /C:/docs/report.pdf 无 无

3.网络行为

网络行为主要分为两种:下载(获取资源)和上传(提交数据)

4.http协议格式

请求报文

  1. 结构:请求行 + 请求报头 + 空行 + 请求正文
  2. 请求报文至少包含请求行与空行,请求报头与请求正文可选
  3. 分隔符 :每一行由**\r\n** 结尾,整体是一个包含分隔符的大字符串
  4. 请求行:由方法(如GET)、URL、版本(如HTTP/1.1)组成
  5. 请求行格式:方法 URL HTTP版本,空格分隔,一般只间隔一个空格
  6. 请求报头:Key-Value形式,包含 User-Agent(客户端信息)Content-Length(正文长度)等

响应报文

  1. 结构:状态行 + 响应报头 + 空行 + 响应正文
  2. 响应报文至少包含状态行与空行,响应报头与响应正文可选
  3. 状态行:包含HTTP版本、状态码(如200)、状态码描述(如OK)
  4. 状态行格式:HTTP版本 状态码 状态描述,空格分隔,一般只间隔一个空格
  5. 响应正文返回的资源内容(如 HTML、JSON、图片等)

关键机制

  1. 编码:URL中的特殊字符会被转义为 % 加十六进制形式,由浏览器和服务器自动编解码
  2. HTTP 通过版本协商机制(如请求/响应行中的版本号声明)和向后兼容设计(如 HTTP/1.1 支持 1.0 特性、HTTP/2/3 通过升级或 ALPN 回退),确保不同版本客户端与服务器能协同工作;同时,只要网络不断,服务器会为所有请求(包括错误请求)返回响应(如 4xx/5xx 状态码),以维持协议的可靠性
  3. Telnet 可通过直接连接服务器端口手动发送请求并查看原始响应 ,适合基础协议调试 ;Fiddler 作为代理工具 拦截并解析本地流量,捕获所有经过的 HTTP/HTTPS 请求/响应,提供可视化抓包和请求修改功能 ;Postman 则以图形化界面简化请求构造与调试 ,专注于构造、发送和管理 HTTP 请求,支持自动化测试和脚本扩展
相关推荐
谢亮_vipxieliang12 小时前
Go net/http 标准库深入——构建生产级 HTTP 服务
http·golang·iphone
Da Da 泓16 小时前
谈谈HTTP
网络·网络协议·http
花间相见17 小时前
【计算基础|网络02】HTTP 原理:报文结构、方法语义与状态码
网络·网络协议·http
花间相见19 小时前
【计算基础|网络01】网络模型与一次完整请求全景
后端·http
墨天梦20 小时前
B15_HTTP解析与OkHttp拦截器
网络协议·http·okhttp
0+1112 天前
Linux --应用层协议HTTP
网络·网络协议·http
To_OC2 天前
从一头雾水到跑通全流程:我用一个周末啃透了JWT登录鉴权
前端·后端·http
小贺儿开发3 天前
Unity 局域网遥控幻灯片展示工具 3.0
科技·http·unity·工具·ppt·通信·网页
剑锋所指,所向披靡!4 天前
HTTP服务器的基本相关概念
服务器·网络协议·http
可乐鸡翅yeah_4 天前
新手梳理:HLS 线上问题,哪些该提给 CDN,哪些该找后端切片服务
开发语言·前端·javascript·vue.js·网络协议·http·m3u8在线