URL基本结构
先来简单说下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基本结构的更多相关文章
- 【思考】URI和URL的区别?以及URL的结构
URI = Universal Resource Identifier URL = Universal Resource Locator 在学习中,我们难免会遇到 URI 和 URL,有时候都傻傻分不 ...
- 如何定义好一个符合规范的url
描述 进公司没有多久遇到一个问题,定义的url会被大神吐槽说是很渣.之前从来没有注意这块,今天把我们团队的url规范分享给大家. 为什么需要URL规范化 1.网站URL和结构已经成为网站搜索引擎友好的 ...
- asp.net MVC URL路由入门指南
asp.net MVC 的URL路由是一个非常强大的功能,而且有个优点:强大单不复杂.然而,目前我在网上看到的相关资料,却都仅仅提供一些示例,仅通过这些示例,初学者基本上不可能明白为什么要这么配置,更 ...
- 浅析URL(接口测试必备知识)
笔者最近在开始接触接口测试的工作,接口测试必须了解http协议,但前提是必须要了解URL URL的定义 url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标 ...
- SEO笔记:Anatomy of a URL
Dr. Peter J. Meyers 原文链接:https://moz.com/blog/seo-cheat-sheet-anatomy-of-a-url 原文主要通过对比讲解 SEO优化后的URL ...
- ASP.NET 整理比较全的URL重写解决方案
经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自 ...
- 判断移动端跳转,从移动端来的不跳转。利用localStorage保存状态,window.location.pathname跳转不同的url
手机访问 www.yourdomain.com 跳转,从m.yourdomain.com来的不跳转. 访问www.yourdomain.com/category8, 跳转到m.yourdomain.c ...
- URL的转义和解析
在开始python编程之前我们先来看看一个关与url的知识 在url中会有一些特殊字符,如果你写过cgi程序,并且提交一个表单去调用你的cgi,你会很清楚的 像?name=aiqier&age ...
- 使用HTML5的History API
HTML5 History API提供了一种功能,能让开发人员在不刷新整个页面的情况下修改站点的URL.这个功能很有用,例如通过一段JavaScript代码局部加载页面的内容,你希望通过改变当前页面的 ...
随机推荐
- 常用的查询DOM的方法
查询body的方法=========== document.body // document.getElementsTagname("body")[0]; 查询html的方法=== ...
- [百家号]雷电3和USB Type-C究竟有什么区别?
雷电3和USB Type-C究竟有什么区别? https://baijiahao.baidu.com/s?id=1617271490773519582&wfr=spider&for=p ...
- Node params和query的Get请求传参
//1:加载http express框架//2:创建服务器const http = require("http");const express = require("ex ...
- SVG to Image in js
SVG to Image in js SVG to Image https://image.online-convert.com/convert-to-svg https://stackoverflo ...
- SpringMVC @SessionAttributes 使用
@SessionAttributes 只能作用在类上,作用是将指定的Model中的键值对添加至session中,方便在下一次请求中使用. 简单示例 目标是通过 @SessionAttributes 注 ...
- Lucene最重要的功能是对一段话的分析
Lucene最重要的功能是对一段话的分析
- pgm11
这里简要的讨论 hybrid network 与一些时序数据的分析. hybrid network 指网络中存在离散随机变量与连续随机变量,这种情况下一般非常麻烦,这主要是因为连续型随机变量需要使用某 ...
- virtualenv 模块
作用 安装虚拟环境 下载组件 pip3 install virtualenv 使用 命令行创建使用 """ 创建虚拟环境 """ virtu ...
- day21 计算器作业
import re express = '1 - 2 * ( ( 6 0 -3 0 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4 ...
- day14 闭包
闭包的概念 必须要有函数嵌套,内部函数调用外部函数的变量 简单的例子 此种方法会导致每次使用内部函数inner的时候需要不断的调用外部函数. 结果导致外部函数的变量不断的被调用被释放,比较低效,相当于 ...