HTML URL 学习笔记

一、URL 概述

  1. 定义:统一资源定位符(Uniform Resource Locator,简称 URL),也被称为网址,是在互联网上用于访问资源的一种标准方式。它指示了资源的位置以及浏览器应如何处理该资源。
  2. 功能:URL 主要用于定位万维网上的文档或其他资源,并告知浏览器如何请求这些资源。它是 Web 浏览器从 Web 服务器请求页面的基础。

二、URL 的组成部分

一个标准的 URL 通常由以下几个部分组成:

  1. 协议(Scheme)

    • 定义了用于访问资源的协议,如 httphttpsftp 等。最常见的是 httphttps,其中 https 表示安全的 HTTP 连接。
  2. 主机名(Host)

    • 指定了资源所在的服务器的域名或 IP 地址。例如,在 URL https://www.example.com 中,www.example.com 就是主机名。
  3. 端口号(Port)(可选):

    • 指定了与服务器通信的端口号。HTTP 默认使用端口 80,HTTPS 默认使用端口 443。如果 URL 中没有指定端口号,浏览器将使用相应的默认端口。例如,https://www.example.com:8080 表示使用端口 8080 访问 example.com
  4. 路径(Path)

    • 指定了资源在服务器上的具体位置,包括目录和文件名。例如,在 URL https://www.example.com/path/to/resource 中,/path/to/resource 就是路径。如果省略路径,则表示访问网站的根目录。
  5. 查询字符串(Query String)(可选):

    • 用于传递参数给服务器上的资源。它通常以 ? 开头,后跟一系列键值对。例如,https://www.example.com/search?q=keyword&lang=en 中,q=keyword&lang=en 就是查询字符串。
  6. 片段标识符(Fragment Identifier)(可选):

    • 用于指定资源内部的一个位置,通常用于页面内的导航。它以 # 开头。例如,https://www.example.com/page#section1 中,#section1 就是片段标识符。

三、URL 的字符编码

由于 URL 只能使用 ASCII 字符集通过因特网进行发送,因此对于非 ASCII 字符,需要使用百分号(%)后跟两位十六进制数来表示。这种编码方式称为 URL 编码。例如:

  1. 空格 :在 URL 中,空格不能直接表示,通常使用 +%20 来代替。例如,https://www.example.com/search?q=hello world 可以编码为 https://www.example.com/search?q=hello+worldhttps://www.example.com/search?q=hello%20world
  2. 特殊字符 :其他特殊字符也需要进行 URL 编码。例如,! 编码为 %21# 编码为 %23$ 编码为 %24 等。

四、URL 的使用示例

以下是一些常见的 URL 示例及其说明:

  1. 简单 URL

    • https://www.example.com:访问 example.com 网站的根目录。
    • https://www.example.com/about:访问 example.com 网站的 about 页面。
  2. 带查询字符串的 URL

    • https://www.example.com/search?q=html&lang=zh:在 example.com 网站上搜索关键词 "html",并设置语言为中文。
  3. 带片段标识符的 URL

    • https://www.example.com/page#contact:访问 example.com 网站的 page 页面,并定位到页面中的 contact 部分。
相关推荐
MingYue_SSS10 分钟前
【未解决】STM32无刷电机驱动电路问题记录
笔记·嵌入式硬件·学习
野原鑫之祝13 分钟前
嵌入式开发学习———Linux环境下IO进程线程学习(一)
linux·c语言·学习·vim·嵌入式
草莓熊Lotso14 分钟前
【数据结构初阶】--二叉树(六)
c语言·数据结构·经验分享·笔记·其他
embrace9935 分钟前
【C语言学习】scanf函数
c语言·开发语言·汇编·学习·青少年编程·c#·编辑器
运维小杨1 小时前
linux运维学习第十三周
运维·学习
zjoy_22331 小时前
[算法]Leetcode3487
java·学习·算法·leetcode
m0_620355192 小时前
sqlite3学习---基础知识、增删改查和排序和限制、打开执行关闭函数
数据库·学习·sqlite
im_AMBER2 小时前
学习日志23 python
python·学习
静水流深LY2 小时前
Vue2学习-el与data的两种写法
前端·vue.js·学习
hdsoft_huge2 小时前
ESXI虚拟交换机 + H3C S5120交换机 + GR5200路由器组网笔记
笔记·智能路由器