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

【HTTP】认识 URL 和 URL encode

文章目录

  • 认识 URL
  • URL 基本格式
    • **带层次的文件路径**
    • **查询字符串**
    • **片段标识符**
  • URL encode

认识 URL

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

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

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

URL 基本格式

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

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

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++的时候,+就会被转义成%2Bimage.png

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

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

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

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

相关文章:

【HTTP】认识 URL 和 URL encode

文章目录 认识 URLURL 基本格式**带层次的文件路径****查询字符串****片段标识符** URL encode 认识 URL 计算机中非常重要的概念,并不仅仅是在 HTTP 中使用。用来描述一个网络资源所处的位置,全称“唯一资源定位符” URI 是“唯一资源标识符“严格的说…...

【AI学习笔记】初学机器学习西瓜书概要记录(二)常用的机器学习方法篇

初学机器学习西瓜书的概要记录(一)机器学习基础知识篇(已完结) 初学机器学习西瓜书的概要记录(二)常用的机器学习方法篇(持续更新) 初学机器学习西瓜书的概要记录(三)进阶知识篇(待更) 文字公式撰写不易&am…...

[SDX35+WCN6856]SDX35 + WCN6856 默认增加打包wifi配置hostapd_24g.conf和hostapd_5g.conf操作方法

SDX35 SDX35介绍 SDX35设备是一种多模调制解调器芯片,支持 4G/5G sub-6 技术。它是一个4nm芯片专为实现卓越的性能和能效而设计。它包括一个 1.9 GHz Cortex-A7 应用处理器。 SDX35主要特性 ■ 3GPP Rel. 17 with 5G Reduced Capability (RedCap) support. Backward compati…...

【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数

文章目录 什么是自动引用计数 内存管理/引用计数 概要 内存管理的思考方式 自己生成的对象,自己所持有 非自己生成的对象,自己也能持有 不再需要自己持有的对象时释放 无法释放非自己持有的对象 什么是自动引用计数 自动引用计数(AR…...

网络安全-LD_PRELOAD,请求劫持

目录 一、环境 二、开始做题 三、总结原理 四、如何防护 一、环境 我们这里用蚁剑自带的靶场第一关来解释 docker制作一下即可 二、开始做题 首先环境内很明显给我们已经写好了webshell 同样我们也可以访问到 我们使用这个蚁剑把这个webshell连上 我们发现命令不能执行&am…...

GO入门之值传递于引用(指针、内存地址)传递扫盲

GO入门之值传递于引用(指针、内存地址)传递扫盲 Go 语言中,值传递和引用(指针)传递是两个关键的概念。通过案例可以很好地展示两者的区别。 值传递与引用传递的区别: 值传递:传递的是变量的副…...

【渗透测试】-vulnhub源码框架漏洞-Os-hackNos-1

vulnhub源码框架漏洞中的CVE-2018-7600-Drupal 7.57 文章目录  前言 1.靶场搭建: 2.信息搜集: 主机探测: 端口扫描: 目录扫描: 3.分析: 4.步骤: 1.下载CVE-2018-7600的exp 2.执行exp: 3.写入木…...

sqli-lab靶场学习(三)——Less8-10(盲注、时间盲注)

Less8 第八关依然是先看一般状态 http://localhost/sqli-labs/Less-8/?id1 然后用单引号闭合: http://localhost/sqli-labs/Less-8/?id1 这关的问题在于报错是不显示,那没办法通过上篇文章的updatexml大法处理。对于这种情况,需要用“盲…...

Pybullet 安装过程

Pybullet 安装过程(windows) 1. 安装C编译工具2. 安装Pybullet 1. 安装C编译工具 pybullet 需要C编译套件,直接装之前检查下,要不会报缺少某版本MVSC的error,最好的方式是直接下载visual studio,直接按默认…...

Error when custom data is added to Azure OpenAI Service Deployment

题意:在向 Azure OpenAI 服务部署添加自定义数据时出现错误。 问题背景: I receive the following error when adding my custom data which is a .txt file (it doesnt matter whether I add it via Azure Cognitive Search, Azure Blob Storage, or F…...

libreoffice word转pdf

一、准备一个word文件 运行: cd /root libreoffice --headless --convert-to pdf --outdir /root/output doc1.docx 发现中文乱码: 此时我们需要给linux 上添加中文字体: centos7 添加中文字体 再次运行正常: libreoffice --h…...

java -----泛型

泛型的理解和好处 泛型是在JDK5之后引入的一个新特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式为 <数据类型> import java.util.ArrayList;SuppressWarnings({"all"}) public class Generic02 {public static void…...

Springboot 文件上传下载相关问题

文章目录 关于Springboot 文件上传下载问题解决方案注意事项文件上传文件下载文件删除文件在线打开在写练习的时候&#xff0c;发现了一些小小的问题&#xff0c;已经在 上述代码中体现。① 代码路径碰到中文的时候&#xff0c;会有乱码&#xff0c;需要转换&#xff08;内容中…...

【Kotlin 与 Java 互操作】Java中调用带有默认值的Kotlin函数(十四)

导读大纲 1.0.1 Java 没有默认参数值的概念1.0.2 使用 JvmOverloads 来简化调用 1.0.1 Java 没有默认参数值的概念 因此当从 Java 调用带有默认参数值的 Kotlin 函数时 1. 必须明确指定所有参数值 fun <T> joinToString(collection: Collection<T>,separator: St…...

点赞系统实现

点赞功能是社交、电商等几乎所有的互联网项目中都广泛使用。虽然看起来简单&#xff0c;不过蕴含的技术方案和手段还是比较多的。 下面将分享之前做的判题OJ系统的点赞系统的思路。 1.需求分析 点赞功能与其它功能不同&#xff0c;没有复杂的原型和需求&#xff0c;仅仅是一…...

c++进阶学习-----继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。 继承呈现了面向对象 程序设计的…...

C++学习笔记(37)

302、makefile 在实际开发中&#xff0c;项目的源代码文件比较多&#xff0c;按类型、功能、模块分别存放在不同的目录和文件中&#xff0c;哪 些文件需要先编译&#xff0c;那些文件后编译&#xff0c;那些文件需要重新编译&#xff0c;还有更多更复杂的操作。 make 是一个强大…...

Redis发布和订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者(sub) 接收消息 可以实现进程间的消息传递。这种模式非常适用于实时消息传递、事件通知和消息分发等场景 Redis可以实现消息中间件MQ的功能&#xff0c;通过发布订阅实现消息…...

计算机毕设设计推荐-基于python+Djanog大数据的电影数据可视化分析

精彩专栏推荐订阅&#xff1a;在下方主页&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、电影数据可视…...

dhtmlxGantt 甘特图 一行展示多条任务类型

效果如图: 后台拿到数据 处理之后如图: 含义: 如上图所示, 如果一行需要展示多个 需要给父数据的那条添加render:split属性, 子数据的parent为父数据的Id即可 切记 父数据的id 别为0 为0 时 会出现错乱 因为有些小伙伴提出分段展示的数据结构还是有点问题,下面展示一个完整…...

Open MCT性能压测实战:JMeter定制化四阶测试方法论

1. 为什么Open MCT的性能不能只靠“感觉”来判断&#xff1f;Open MCT——NASA开源的航天器监控与控制平台&#xff0c;这几年在工业SCADA、能源调度、实验室数据可视化等场景里越来越常见。但凡用过它的团队&#xff0c;几乎都经历过这样一个阶段&#xff1a;开发阶段一切丝滑…...

透明化智慧港口码头•装载·存储·集散全流程透明化管控方案

一、方案前言本方案依托黎阳之光镜像孪生、时空AI拓扑、无感全域定位、视频实景融合、边缘实时算力五大核心技术&#xff0c;聚焦港口码头货物装载、堆场存储、集疏运集散三大核心业务&#xff0c;打造实景可视、数字镜像、智能调度、全程透明、风险可控、全程可溯的智慧管控体…...

SurfaceFlinger 调用 libdrm 的详细代码流程分析

1. 整体架构图 ┌─────────────────────────────────────────────────────────────────┐ │ 应用层框架 │ │ ┌──────────────…...

用于参数扫描的自定义工具

能够改变光学系统的参数是任何设置分析的关键部分&#xff0c;以便更好地了解系统在从制造错误到组件潜在错位的任何情况下的行为。设计一个在面对这些不可避免的偏离理想化预期设计时表现出鲁棒性的系统&#xff0c;与找到一个完全满足所有规范的初始设计一样重要&#xff0c;…...

千问 LeetCode 2547. 拆分数组的最小代价 Java实现

这道题是典型的区间DP&#xff08;动态规划&#xff09;问题&#xff0c;核心在于如何高效计算每个子数组的"重要性"。问题分析重要性的计算规则&#xff1a; - 子数组中只出现一次的数字会被移除&#xff08;不计入长度&#xff09; - 重要性 k 剩余数字的个数 - …...

CANN/asc-devkit atanf函数文档

atanf 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann…...

minecraft-ondemand故障排查指南:解决AWS无服务器我的世界服务器常见问题

minecraft-ondemand故障排查指南&#xff1a;解决AWS无服务器我的世界服务器常见问题 【免费下载链接】minecraft-ondemand Templates to deploy a serverless Minecraft Server on demand in AWS 项目地址: https://gitcode.com/gh_mirrors/mi/minecraft-ondemand mine…...

10个Elog实用技巧:让你的博客管理效率翻倍

10个Elog实用技巧&#xff1a;让你的博客管理效率翻倍 【免费下载链接】elog Markdown 批量导出工具、开放式跨平台博客解决方案&#xff0c;随意组合写作平台(语雀/Notion/FlowUs/飞书/我来Wolai)和博客平台(Hexo/Vitepress/Halo/Confluence/WordPress等) 项目地址: https:/…...

家庭宽带上网背后的隐形功臣:一文拆解光猫/路由器里的NAT和DHCP是怎么协同工作的

家庭网络中的隐形守护者&#xff1a;NAT与DHCP如何编织你的数字生活 当你躺在沙发上用手机追剧时&#xff0c;是否想过为什么所有家庭设备都能和平共处在同一网络&#xff1f;192.168.1.x这串神秘数字背后&#xff0c;藏着两套精密的协议系统——它们像建筑物的水电管线般隐形却…...

树莓派5/4B新手开箱:用官方Raspberry Pi Imager工具10分钟完成系统部署

树莓派5/4B极速部署指南&#xff1a;官方Imager工具的全新工作流解析 第一次拿到树莓派5或4B时&#xff0c;很多用户会陷入传统部署方法的复杂流程中——下载镜像、格式化存储卡、烧录系统、手动配置网络……这些步骤不仅耗时&#xff0c;还容易因操作失误导致启动失败。而树莓…...