先来简单说下URI、URL、URN这三个鬼东西。

URI全称Uniform Resource Identifier,统一资源标识符

URL全称Uniform Resource Locator,统一资源定位符

URN全称Uniform Resource Name,统一资源名称


URI(统一资源标识符)有以下两种形式

URL是一个用于标识某一互联网资源名称的字符串

URN是URL的一种更新形式,统一资源名称不依赖于位置,并且有可能减少失效连接的个数。

大白话就是URL和URN都是URI的子集,其中URI是URL的另一种更新形式而已

下面来说下URL的组成

举个栗子,比如https://www.baidu.com:80/item/url/110640?fr=aladdin这个地址

URL由下面几个部分组成

第一部分-协议(scheme)

该URL的协议部分是https(超文本传输协议),https表示用安全套接字层传送的超文本传输协议,它是一种加密的HTTP传输协议,比HTTP更安全

常用的协议有http、https、ftp、file、mailto

第二部分-域名

一个URL中也可以使用IP地址作为域名使用

域名分为顶级域名www.baidu.com、二级域名baike.baidu.com、三级域名baike.tieba.baidu.com

第三部分-端口

用来区分同一台服务器上不同服务的标识

HTTP默认端口为80,端口范围是0-65535之间

HTTPS默认端口号443,FTP默认端口号21

跟在域名后面的是端口,域名和端口之间用 ":" 作为分隔符。另外端口不是URL必须的部分,如果省略端口将采用默认端口

第四部分-虚拟目录(路径)

从域名后的第一个"/"开始到最后的/为止为虚拟目录。虚拟目录也不是URL必须部分

这里的/斜杠可能是目录也可能是接口

第五部分-文件名(?查询信息)

域名最后一个斜杠 / 到?部分,如果没有?则是从域名后的最后一个 / 到 #

其中?代表查询信息,window.location.search方法可以获取到,该方法可以读也可以写,写了查询信息会刷新页面

第六部分-锚信息(#哈希)

#号之后的都是锚信息 hash值。window.location.hash方法可以获取到,该方法也是可读可写,写了锚信息不会刷新页面

其中window.onhashchange方法当hash值发生变化时候才会触发该方法

URL基本结构的更多相关文章

  1. 【思考】URI和URL的区别?以及URL的结构

    URI = Universal Resource Identifier URL = Universal Resource Locator 在学习中,我们难免会遇到 URI 和 URL,有时候都傻傻分不 ...

  2. 如何定义好一个符合规范的url

    描述 进公司没有多久遇到一个问题,定义的url会被大神吐槽说是很渣.之前从来没有注意这块,今天把我们团队的url规范分享给大家. 为什么需要URL规范化 1.网站URL和结构已经成为网站搜索引擎友好的 ...

  3. asp.net MVC URL路由入门指南

    asp.net MVC 的URL路由是一个非常强大的功能,而且有个优点:强大单不复杂.然而,目前我在网上看到的相关资料,却都仅仅提供一些示例,仅通过这些示例,初学者基本上不可能明白为什么要这么配置,更 ...

  4. 浅析URL(接口测试必备知识)

    笔者最近在开始接触接口测试的工作,接口测试必须了解http协议,但前提是必须要了解URL URL的定义 url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标 ...

  5. SEO笔记:Anatomy of a URL

    Dr. Peter J. Meyers 原文链接:https://moz.com/blog/seo-cheat-sheet-anatomy-of-a-url 原文主要通过对比讲解 SEO优化后的URL ...

  6. ASP.NET 整理比较全的URL重写解决方案

    经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自 ...

  7. 判断移动端跳转,从移动端来的不跳转。利用localStorage保存状态,window.location.pathname跳转不同的url

    手机访问 www.yourdomain.com 跳转,从m.yourdomain.com来的不跳转. 访问www.yourdomain.com/category8, 跳转到m.yourdomain.c ...

  8. URL的转义和解析

    在开始python编程之前我们先来看看一个关与url的知识 在url中会有一些特殊字符,如果你写过cgi程序,并且提交一个表单去调用你的cgi,你会很清楚的 像?name=aiqier&age ...

  9. 使用HTML5的History API

    HTML5 History API提供了一种功能,能让开发人员在不刷新整个页面的情况下修改站点的URL.这个功能很有用,例如通过一段JavaScript代码局部加载页面的内容,你希望通过改变当前页面的 ...

随机推荐

  1. mysql 分页数据错乱

    最近在使用mysql 分页查询数据的时候发现返回的数据与预期的不一样,显示数据重复错乱. 在官方文档 有这样一句话 If multiple rows have identical values in ...

  2. BZOJ3771 Triple(FFT+容斥原理)

    思路比较直观.设A(x)=Σxai.先把只选一种的统计进去.然后考虑选两种,这个直接A(x)自己卷起来就好了,要去掉选同一种的情况然后除以2.现在得到了选两种的每种权值的方案数,再把这个卷上A(x). ...

  3. JPQL模糊匹配单个字符

    JPQL模糊匹配,不是%,而是单个字符,该怎么办?比如我要查出数据库中满足后三位是数字的字符串 对于mysql来说,使用通配符 %和_可以轻松解决,但是对于JPQL来说模糊查询就伤脑筋了... 有一个 ...

  4. MT【1】终点在球面上的向量

    解答: 评:最小值在Q为球心时取到,体现数学对称性的美!

  5. 详解基于朴素贝叶斯的情感分析及 Python 实现

    相对于「 基于词典的分析 」,「 基于机器学习 」的就不需要大量标注的词典,但是需要大量标记的数据,比如: 还是下面这句话,如果它的标签是: 服务质量 - 中 (共有三个级别,好.中.差) ╮(╯-╰ ...

  6. 架构师成长之路6.3 DNS服务器搭建(部署单台DNS)

    点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署单台DNS) 1.安装bind yum -y install bind-utils bind bind-devel bind-chr ...

  7. 2073: [POI2004]PRZ

    2073: [POI2004]PRZ Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 284  Solved: 213[Submit][Status][D ...

  8. 洛谷 P3313 [SDOI2014]旅行 解题报告

    P3313 [SDOI2014]旅行 题目描述 S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天面条神教.隐形独角兽教 ...

  9. jsp关闭或刷新浏览器(解决浏览器不兼容),请求后台onbeforeunload、onunload

    jsp关闭或刷新浏览器(解决浏览器不兼容),请求后台  onbeforeunload.onunload 1.看代码: function test(e) { var json = "退出,清理 ...

  10. 结尾非零数的奇偶性(问题来源于PythonTip)

    给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性.如果为奇数输出1,偶数则输出0.. 例如:L=[2,8,3,50] 则输出:0 L = [2,8,3,50] c2 = 0 ...