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

【计算机网络学习之路】URL概念及组成

目录

一. URL是什么

二. URL的组成

三. encode和decode


前言

 本系列文章是计算机网络学习的笔记,欢迎大佬们阅读,纠错,分享相关知识。希望可以与你共同进步。

本篇讲解使用浏览器不可或缺的部分——URL

一. URL是什么

域名及DNS

我们在浏览器中获取的文字,图片,音频,视频...这些都称为资源。在网络中通信,必须知道对方的IP地址和端口号。但IP和端口号都是数字的形式,对与我们来说,并不好记忆。所以出现了域名和域名解析系统——DNS

域名就是我们平常访问的网站的名称,比如baidu.comqq.com

DNS会把我们请求的域名,转换成IP地址返回。这样我们就获取到了目标主机的IP地址。
DNS都会内置在浏览器,客户端,电脑中

URL

Internet上的每一个网页都具有一个唯一标识的名称,称之为URL(Uniform Resoruce Locator统一资源定位器)
URL是www的统一资源定位标志,简单地说,URL就是web地址,俗称“网址”

二. URL的组成

URL可以认为由3部分组成:

  • 资源类型,存放资源的主机域名,资源文件名

也可以认为由4部分组成:

  • 协议,主机,端口,路径

还可以认为由7部分组成:

  • 协议,域名,端口,虚拟目录,文件名,锚,参数

URL的一般格式:

([]中的内容为可选项)

  • protocol : //hostname[:port] / path /[;parameters][?query]#fragment


案例说明

比如这样一个URL

https://www.baidu.com/

就是由4部分组成:协议,主机,端口号,路径

端口号一般是省略的,不需要用户指明,浏览器可以根据使用的协议来添加端口号

HTTP:80;HTTPS:443

  • 协议(HTTP):规定数据传输方式
  • 域名(IP):由DNS转换为主机IP地址——用 :// 与协议分隔
  • 端口号(port):标识目的主机的一个进程——用  与域名分隔;HTTP为80,HTTPS为443
  • 路径:指定目的主机和进程后,会进入其默认路径(首页),以此为web根目录访问文件。

在腾讯网中搜索网易和点击体育专栏,对应URL如下:

这两个URL多了一个参数部分

使用 ? 与路径分隔。参数可以有多个,彼此使用 & 分隔。

比如from=qqnews代表记录从哪个路径跳转过来的,page=1代表一页

URL还有一部分是锚点

# 后面的部分为锚点,比如:#SomewhereInTheDocument

锚点表示资源中的一种“书签”,给浏览器显示位于该“加书签”位置的内容的方向。

例如,在HTML文档上,浏览器将滚动到定义锚点的位置;在视频或者音频文档上,浏览器将尝试转到锚代表的事件

三. encode和decode

在搜索“网易”的时候,我们在URL中看到的传参是这样的

query=%E7%BD%91%E6%98%93

这其实是URL的encode编码。

URL中有很多的分隔符,比如? # &。同时,用户也可能在搜索内容中携带这些符号,所以为了不影响URL的格式,这些字符都需要进行encode编码,即转换成其十六进制的ASCII码。有编码自然也有decode解码,将十六进制的ASCII码转换为其原本内容。

可以使用decode在线平台在线url网址编码、解码(ES JSON在线工具)查看结果

结束语

本篇博客到此结束,感谢看到此处。
欢迎大家纠错和补充
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。

相关文章:

  • 图论|684.冗余连接 685. 冗余连接 II
  • 算法基础五
  • flink安装与配置-脚本一键安装(超简单)
  • 类和对象(上篇)
  • mysql面试题——日志与MVCC
  • 数据链路层之VLAN基本概念和基本原理
  • Excel导入组件的封装以及使用页面点击弹出该弹框
  • 营销互动类小游戏策划与开发
  • 【Ratis】Grpc.proto文件里定义的一些RPC
  • Mysq8l在Centos上安装后忘记root密码如何重新设置
  • windows系统mobaxterm远程执行linux上ssh命令
  • Sublime text 添加到鼠标右键菜单,脚本实现
  • 【大模型】更强的 ChatGLM3-6B 来了,开源可商用
  • 虚假IP地址攻击的溯源方法
  • MDK5改造之格式化以及文件函数注释插件和主题应用
  • 【RocksDB】TransactionDB源码分析
  • 10个最佳ES6特性 ES7与ES8的特性
  • Flannel解读
  • JDK 6和JDK 7中的substring()方法
  • JS基础之数据类型、对象、原型、原型链、继承
  • Lsb图片隐写
  • Map集合、散列表、红黑树介绍
  • PhantomJS 安装
  • RxJS: 简单入门
  • session共享问题解决方案
  • Webpack 4x 之路 ( 四 )
  • 普通函数和构造函数的区别
  • 前端面试之CSS3新特性
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 日剧·日综资源集合(建议收藏)
  • 微信公众号开发小记——5.python微信红包
  • 移动端唤起键盘时取消position:fixed定位
  • 国内开源镜像站点
  • ​Spring Boot 分片上传文件
  • ​如何防止网络攻击?
  • ${ }的特别功能
  • (4) PIVOT 和 UPIVOT 的使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (zt)最盛行的警世狂言(爆笑)
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net core 依赖注入的基本用发
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 使用ajax控件后如何调用前端脚本
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET委托:一个关于C#的睡前故事
  • @JsonFormat与@DateTimeFormat注解的使用
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [<死锁专题>]
  • [04] Android逐帧动画(一)
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [codevs] 1029 遍历问题
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [HTML]Web前端开发技术30(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页