引入外部文件的时候为什么省略http:
【摘要】相信很多时候大家在使用网上的实例代码的时候,需要引入外部文件,然而它们通常都是省略了http:,这是为什么呢?
先给大家看一个简单的小例子,引入外部jquery文件:
- <script src="//code.jquery.com/jquery-1.9.1.js"></script> 
然而通常我们引入外部文件都是需要写全url的:
- <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
当然这里常常省去http:自然是有原因的,有两个方面的原因:
第一点,是这种写法是相对路径的写法,对于相对的URL,浏览器在处理的过程中(发送http请求),会将它转化为绝对路径,即补全URL的协议、域名和路径。所以请求//code.jquery.com/jquery-1.9.1.js,浏览器则会补全协议http或者https,补全的原则是与当前页面打开的协议相同。
第二点,也就是最重要的一点,是用户的请求的协议是不清楚的有可能是http协议也有可能是https协议,(注意:https协议是基于http协议之上的,是一种安全的超文本传输协议),所以既然不知道开发者使用的协议,倒不如直接使用相对路径的写法来引入外部文件,这样就能够保证我们引入的外部文件能够不受协议的影响,使得与用户使用的协议一致。
这以后当我们再次看到没有写http:引入外部文件的时候可不要再大惊小怪了,知道原因了吗?
引入外部文件的时候为什么省略http:的更多相关文章
- nginx 引入外部文件
		http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $ ... 
- vue3+typescript引入外部文件
		vue3+typescript中引入外部文件有几种方法 (eg:引入echarts) 第一种方法: 1 indext.html中用script引入 <div id="app" ... 
- postman通过引入外部文件实现参数化
		postman可通过引入外部文件进行参数化 目录 1.准备好接口信息 2.设置 1.准备好接口信息 这里的usr和psw是要参数化的对象 2.设置 文件准备 添加文件,并设置好循环次数即可 
- HTML引入外部文件,解决统一管理导航栏问题。
		1.IFrame引入,看看下面的代码 <IFRAME NAME="content_frame" width=100% height=30 marginwidth=0 ... 
- 【html】【2】html引入外部文件js css
		1>引入js 我们只是写了简单必须的html标签,从未给标签添加点击事件,这次页面添加事件. >写入html页面,可以在<head>标签内 也可以在<body>标 ... 
- js 引入外部文件之 script 标签
		在我的理解看来,html 就是一个单纯的管显示问题,js就是单纯的管动作问题,css就是单纯的管布局问题,这三个构成了一个网页 在HTML中,经常会用到引入js 文件. 引入js的方法很简单: 1. ... 
- react如何引入外部文件的整理
		1 引入组件 首先就应该是安装了,安装在环境中后通过 import { Select, Button, Icon, QueueAnim } from 'antd'; 就可以把需要的组件引用进来了~ 2 ... 
- 解决引入外部文件(图片、js等)出现 403 net::ERR_ABORTED 的问题
		页面中引入外网的链接资源,会产生一个新的http请求.为了安全(URL里可能包含用户信息),浏览器一般都会给这写请求头加上表示来源的referrer 字段. 所以,此时我们需要隐藏外部链接中的refe ... 
- Vue项目中引入外部文件(css、js、less)
		例子中css文件采用bootstrap.css,js文件采用jQuery,less文件用less.less(自定义文件) 步骤一:安装webpack cnpm install webpack -g 步 ... 
随机推荐
- TensorFlow 安装 Ubuntu14.04
			1.Install pip (or pip3 for python3) if it is not already installed: # Ubuntu/Linux 64-bit $ sudo apt ... 
- Oracle忘记密码找回
			生活中,容易忘记Oracle数据库system用户的密码,怎么办呢,小生带你一步步重新登上Oracle ,及时你密码忘记了. 1.打开cmd窗口,输入 sqlplus / as sysdba 2.运行 ... 
- JSON对象和JSON字符串以及JSON.parse 函数的使用
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- java语言国际化--ResouceBundle、struts
			一.Java国际化 我们使用java.lang.Locale来构造Java国际化的情境. java.lang.Locale代表特定的地理.政治和文化.需要Locale来执行其任务的操作叫语言环境敏感的 ... 
- jmx 配置
			1.启动添加jmx参数 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom. ... 
- 【BLE】CC2541之主机端读取特征值
			本篇博文最后改动时间:2017年01月06日,11:06. 一.简单介绍 本文介绍怎样在SimpleBLECentralproject中,读取SimpleBLEPeripheralproject中的特 ... 
- vim 创建文件自动生成头部注释
			知识点: 1. autocmd命令: 当读写一个文件时,自动执行指定的命令; 2. autocmd event: BufNewFile 当文件不存在时开始写文件; 3. exec命令 execute命 ... 
- hdu1003 最大子串和
			Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ... 
- 常用jar命令
			JAR包是Java中所特有一种压缩文档.存储格式格式就是.zip包.但是与ZIP包不同的地方是,生成JAR包时候,会自动添加一个META-INF\MANIFEST.MF文件 命令参数jar {c t ... 
- PHP——面向对象
			<body> <?php //类调用用:: //对象调用用-> class Dog1//定义类 { //成员属性(变量) var $name; var $age; var $p ... 
