【计算机网络学习之路】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在线工具)查看结果

结束语

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

43 - 什么是数据的强、弱一致性?

说到一致性,其实在系统的很多地方都存在数据一致性的相关问题。除了在并发编程中保证共享变量数据的一致性之外,还有数据库的 ACID 中的 C(Consistency 一致性)、分布式系统的 CAP 理论中的 C(Consistency 一致性&…

Android studio Load error:undefined path variables

android stuido 报错 Load error:undefined path variables Gson is undefined 处理方法: 点击进行Sync Project with Gradle Files

Redis——某马点评day02——商铺缓存

什么是缓存 添加Redis缓存 添加商铺缓存 Controller层中 /*** 根据id查询商铺信息* param id 商铺id* return 商铺详情数据*/GetMapping("/{id}")public Result queryShopById(PathVariable("id") Long id) {return shopService.queryById(id);} Service…

文心版吴恩达课程:语义核心(Semantic Kernel)插件的商业应用

文心版吴恩达课程:语义核心(Semantic Kernel)插件的商业应用 Semantic Kernel is an SDK that integrates Large Language Models (LLMs) like OpenAI, Azure OpenAI, and Hugging Face with conventional programming languages like C#, P…

leetcode:225. 用队列实现栈

一、题目 链接:225. 用队列实现栈 - 力扣(LeetCode) 函数原型: typedef struct { } MyStack; MyStack* myStackCreate() void myStackPush(MyStack* obj, int x) int myStackPop(MyStack* obj) int myStackTop(MyStack* obj) …

代码随想录刷题题Day4

刷题的第四天,希望自己能够不断坚持下去,迎来蜕变。😀😀😀 刷题语言:C / Python Day4 任务 ● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II 1 …

大数据技术之Flume(超级详细)

大数据技术之Flume(超级详细) 第1章 概述 1.1 Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 1.2 Flume组成架构 Flume组成架构如…

react-route-dom 实现简单的嵌套路由

最终效果 点击 to test1 点击to test2 > to test21 点击to test2 > to test22 代码如下 path: "page",element: <父组件 />,children: [{ path: "test1", element: <Test1 /> },{path: "test2",element: <Test2 />…

Springboot自定义starter

一、start背景和简介 1.背景 工作中经常需要将多个springboot项目共同的非业务模块抽取出来&#xff0c;比如访问日志、维护请求上下文中的用户信息或者链路id等等。此次模拟的是请求中用户信息维护&#xff0c;方便整个请求中用户信息的取用。 2.作用 根据项目组的实际需求…

【WPF.NET开发】创建简单WPF应用

本文内容 先决条件什么是 WPF&#xff1f;配置 IDE创建项目设计用户界面 (UI)调试并测试应用程序 通过本文你将熟悉在使用 Visual Studio 开发应用程序时可使用的许多工具、对话框和设计器。 你将创建“Hello, World”应用程序、设计 UI、添加代码并调试错误。在此期间&#…

策略设计模式

package com.jmj.pattern.strategy;public interface Strategy {void show(); }package com.jmj.pattern.strategy;public class StrategyA implements Strategy{Overridepublic void show() {System.out.println("买一送一");} }package com.jmj.pattern.strategy;p…

Raft 算法

Raft 算法 1 背景 当今的数据中心和应用程序在高度动态的环境中运行&#xff0c;为了应对高度动态的环境&#xff0c;它们通过额外的服务器进行横向扩展&#xff0c;并且根据需求进行扩展和收缩。同时&#xff0c;服务器和网络故障也很常见。 因此&#xff0c;系统必须在正常…

组件化编程

hello&#xff0c;我是小索奇&#xff0c;精心制作的Vue系列持续发放&#xff0c;涵盖大量的经验和示例&#xff0c;如果对您有用&#xff0c;可以点赞收藏哈~ 组件化编程 组件是什么&#xff1f; 一句话概括就是&#xff1a;实现特定功能的模块化代码单元 vm就是大哥&#xff…

flink源码分析之功能组件(四)-slot管理组件II

简介 本系列是flink源码分析的第二个系列&#xff0c;上一个《flink源码分析之集群与资源》分析集群与资源&#xff0c;本系列分析功能组件&#xff0c;kubeclient&#xff0c;rpc&#xff0c;心跳&#xff0c;高可用&#xff0c;slotpool&#xff0c;rest&#xff0c;metrics&…

各种外部排序的总结

多路归并 败者树 置换选择排序 最佳归并树

linux进程优先级_nice

4.1.3.4 进程优先级&#xff1a;nice nice以更改过的优先序来执行程序&#xff0c;如果未指定程序&#xff0c;则会印出目前的排程优先序&#xff0c;内定的 adjustment 为 10&#xff0c;范围为 -20&#xff08;最高优先序&#xff09;到 19&#xff08;最低优先序&#xff0…

认识K线形态,把握买入卖出时机

一、认识K线 1、K线的含义 股票一天之内有4个最关键的价格&#xff0c;开盘价、收盘价、最高价和最低价&#xff0c;把这个价格显示在图上就是K线图。 以金斗云智投电脑版为例&#xff0c;打开软件&#xff0c;任意搜索一支个股&#xff0c;就可以看到这支股票的K线。 股市新…

数据链路层之网桥

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

更改AndroidStudio模拟器位置

C盘何等的珍贵&#xff0c;可是好多工具&#xff0c;软件非得默认安装在C盘。。导致C盘越来越紧张。。 在日常使用过程中&#xff0c;安装任何软件都会将其安装到非系统盘下&#xff0c;Android模拟器也不能例外。保护好C盘也是日常一个良好的习惯。 Android AVD默认路径&…

深入理解Servlet(下)

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 在这一篇文章里&#x…