【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://www.xdnf.cn/news/144869.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java 数据类型转换详解:隐式转换(自动转换)与强制转换(手动转换)

目录 前言 取值范围从小到大的关系: 隐式转换(自动转换) 📜示例 1:基本类型隐式转换 📜示例 2:算术运算中的类型提升 📜示例 3:byte、short 和 char 的自动转换 隐…

排序的实现

1,插入排序 时间复杂度O(N) 思路:当插入第i个元素时,前面i-1个元素已经排好,将第i个元素与前面的元素比较,找到插入的位置,原来位置的元素向后挪。 动图展示: 从上图可以看出,先把…

CS61C 2020计算机组成原理Lab03

Exercise 1: Familiarizing yourself with Venus .data .word 2, 4, 6, 8 n: .word 9.text main: # add t0, x0, x0# addi 是 "add immediate"(立即数加法)的缩写,表示这是一个加法指令,其中一个加数是一个立即数&am…

macos tcl-tk python图形库软件包安装 port 和brew 包管理工具安装方法和使用总结

macos下安装这个tcl-tk 图形库, 使用port和brew 安装时是不一样的, 软件包名称不一样,安装后的软件文件路径信息也不一样。 在brew 包管理工具中,这个软件包的名称就是tcl-tk, 安装方法为 brew install tcl-tk , 而…

昂科烧录器支持Senasic琻捷电子的蓝牙低功耗芯片SNP746

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中Senasic琻捷电子的蓝牙低功耗芯片SNP746已经被昂科的通用烧录平台AP8000所支持。 SNP746是一款蓝牙低功耗芯片,集成了压力传感器和加速度传感器的测量电路。它是为…

表达式求值(综合应用的难题)

一、各种表达式的含义与操作 请看下面链接里面的博客吧,这是一位大佬写的,里面的图很是不错,可以看看。 各种表达式的概念与操作 二、题目 给定一个表达式,其中运算符仅包含 ,-,*,/(加 减 乘 整除)&…

产业报告 | 2024年中国机器人产业研究报告

近日,世界机器人大会在北京亦庄国际会展中心举办。据悉,这是国内最大的机器人展会,今年的展会规模更是创下新高,共有169家企业参展,展出的产品数量超过600款,观展人次超过30万,足见各行各业对机…

QT widgets 窗口缩放,自适应窗口大小进行布局

1. 窗口布局 2. 尺寸策略:扩展 Fixed (固定): 行为:控件的大小是固定的,不会随着窗口大小的变化而改变。它的大小由控件的 sizeHint() 返回的值决定。 适用场景:当你希望控件的大小保持不变,不随布局调整时使用&#x…

前端vue-插值表达式和v-html的区别

创建vue实例的时候,可以有两种形式。 1.let appnew Vue({}) 2 const appnew Vue({}) 3 el是挂载点,是上面div的id值 4 data中的值可以展示在上面div中 5 v-html标签里面如果有内容,则我们的新内容会把标签里面的内容覆盖掉

解决 Torch not compiled with CUDA enabled 问题 | MiniCPM3-4B 【应用开发笔记】

最近在研究测试MiniCPM3-4B,这里记录一下遇到的cuda和torch版本问题 在调试和运行MiniCPM3-4B过程中如果出现找不到某个包,就用pip进行安装,如果提示GPU相关的问题则需要进一步检查 解决 Torch not compiled with CUDA enabled 问题 一、查看…

Arthas 全攻略:让调试变得简单

文章目录 一、简介二、命令列表 一、简介 注意 : 我安装的版本是:Arthas V3.7.2 官网:https://arthas.aliyun.com/doc/ 相关错误解决方案请看GitHub:https://github.com/alibaba/arthas/issues Alibaba开源的Java诊断工具。 从…

我的AI工具箱Tauri版-MicrosoftTTS文本转语音

本教程基于自研的AI工具箱Tauri版进行MicrosoftTTS文本转语音服务。 MicrosoftTTS文本转语音服务 是自研的AI工具箱Tauri版中的一款功能模块,专为实现高效的文本转语音操作而设计。通过集成微软TTS服务,用户可以将大量文本自动转换为自然流畅的语音文件…

圣多纳释放法,达到内心的平静

圣多纳释放法的关键在于:我们被情绪控制时,不应该压抑情绪或是发泄情绪。 利用释放法处理情绪是最健康的方法,可以帮助我们获得自由与平静。当我们面对讨厌的人时,我们真正要做的并非压抑或者爆发,而是将“讨厌”这种…

仪表放大器AD620

AD623 是一款低功耗、高精度的仪表放大器,而不是轨到轨运算放大器。它的输入电压范围并不覆盖整个电源电压(轨到轨),但在单电源供电下可以处理接近地电位的输入信号。 AD620 和 AD623 都是仪表放大器,但它们在一些关键…

HTB-Netmon(prtg配置文件获取,CVE-2018-9276复现)

前言 各位师傅大家好,我是qmx_07,今天给大家讲解Netmon靶机 渗透流程 信息搜集 服务器开放了80HTTP、21FTP(匿名登录)、445SMB服务 FTP匿名登录 获取敏感文件 登录后台 网站登录需要 账号、密码 ,尝试去FTP服务 碰下运气 通过翻阅ft…

基于Python flask的淘宝商品数据分析可视化系统,包括大屏和主题分析,还有回归预测

背景介绍 随着电子商务的迅猛发展,平台上积累了大量的用户行为和商品交易数据。这些数据蕴含着极大的商业价值,可以为市场趋势预测、商品优化以及用户行为分析提供重要的参考。淘宝作为全球最大的在线购物平台之一,拥有海量的商品和用户数据…

联想一体机怎么重装系统_联想一体机重装win10系统教程

联想一体机怎么重装系统?联想一体机重装系统有很多,有一键重装、有U盘重装、有硬盘重装等方式,最保险的方式是u盘重装系统。需要准备一个空U盘,然后利用第三方工具制作启动u盘,制作完成后进入pe重装系统,下…

集装箱机房可视化:高效管理与监控

通过图扑可视化平台实时监控集装箱机房的运行状态和环境参数,优化资源配置,提升运维效率,确保数据中心安全可靠运行。

Swagger 概念和使用以及遇到的问题

前言 接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变 成重中之重。接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新, 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不…

dll注入的实现及session0注入

记录一下跟着红队蓝军师傅学免杀的过程 本节旨在学习dll注入和代码实现并不涉及免杀知识 dll注入流程 dll注入要么注入自己写的程序要么找个程序进行注入,一般是找其他程序进行注入 所以按照上面的步骤进行 其中申请空间,创建线程都是在远程的另一个进…