前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【HTTP】认识 URL 和 URL encode

【HTTP】认识 URL 和 URL encode

作者头像
椰椰椰耶
发布2024-10-15 15:49:14
发布2024-10-15 15:49:14
1200
举报
文章被收录于专栏:学习学习

认识 URL

计算机中非常重要的概念,并不仅仅是在 HTTP 中使用。用来描述一个网络资源所处的位置,全称“唯一资源定位符

  • URI 是“唯一资源标识符
  • 严格的说 URI 的范围比 URL 更广一些

标识一个变量的身份,可以使用变量的地址(C 语言),也可以使用变量的 hashcodeJava) 标识身份就相当于是 URI 这样的东西;我们使用地址,就相当于是 URL(地址也可以起到标识身份的效果)

URL 基本格式

https://www.sogou.com/ 就是一个最简单的 URL

  • https://,协议的名称
  • www.sogou.com,域名
image.png
image.png

image.png
image.png
  • 登录信息写在这里不太安全,现在都是通过“单独的登录界面”进行身份验证
  • 这里的域名,也可以是 IP 地址(域名和 IP 地址可以互相转换的)
  • 这里的端口号,代表你要访问服务器的那个端口。当前服务器上会有很多程序,这些程序我们需要进行区分
    • 如果 URL 中不带端口号,浏览器就会默认给一个端口(服务器的端口,不是客户端的,也就不是系统随机分配的那个)。此处用什么端口作为默认值取决于协议:http==>80https==>443

带层次的文件路径

  • URL 代表的是网络上的资源位置,你就要知道
    1. 通过 IP 地址知道服务器在哪
    2. 通过端口号知道程序是哪个
    3. 通过路径知道是访问哪个资源 这里可能会对应一个真实的硬盘文件,也可能会对应一个虚拟的文件

查询字符串

  • 是针对请求的内容做的补充说明
  • 是客户端给服务器传递信息的重要途径
  • 这里的组织方式是按照键值对的方式来组织的
    • 这里的键值对的内容,就是程序员自定义的,没有标准规定
    • 所以一般查询字符串具体是什么意思,作为外人无法得知,必须是写这个代码的程序猿才知道

片段标识符

  • 用来标识当前页面的某个部分。通过不同的片段标识可以完成页面的跳转(目录定位跳转)

结合上述 IP 地址、端口号、路径、查询字符串,就可以描述出一个网络资源了

  • IP 地址==>确定服务器是哪个
  • 端口号==>确定程序是哪个
  • 路径==>确定访问的资源是哪个
  • 查询字符串==>补充说明

URL encode

query string 里面是自定义的键值对。在 URL 中,本身有一些特殊符号具有特定的含义(/:?@…)

如果 URLquery string 中也包含同样的符号怎么办?

  • 如果直接写进去,就可能会导致服务器/浏览器解析失败 靠谱的方法就是对上述符号进行"转义",转义的过程就叫“URL encode

不仅针对标点符号,还要对汉字进行转义。因为汉字的 UTF8/GBK 等编码值其中可能某个字节就恰好和某个符号的 ASCII 码一致,此时就麻烦了

当你在浏览器中搜索 C++的时候,+就会被转义成%2B

image.png
image.png
  • + 的 ASCII 拿出来,使用十六进制表示,并且加上 %

当你在浏览器中搜索“蛋糕”的时候,“蛋糕”就会被转义成%E8%9B%8B%E7%B3%95

image.png|413
image.png|413
  • 但是在浏览器中看到的还是“蛋糕”,只有复制出去了才能看到。因为浏览器自动帮你转换了
  • 将““和““的 UTF8 编码进行十六进制表示,并且在前面加上%
image.png|563
image.png|563

这里的 URL encode 是非常重要的。在实际开发中,当要构造一个 URL,尤其是 URLquery string 中要包含中文的时候,务必要进行编码!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 认识 URL
  • URL 基本格式
    • 带层次的文件路径
    • 查询字符串
    • 片段标识符
  • URL encode
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档