HTTP-URL与资源

142 阅读4分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

一、URL与资源

1.URI 与 URL 含义与区别

uri是统一资源标示符,可以唯一标识一个资源。

url是统一资源定位符,可以提供找到该资源的路径。 

urn是统一资源名称,用特定命名空间的名字标识资源。

例如你要找某个人,这个人就是uri,人名就是urn,要怎么才能找到他,通过具体的地址,这个地址就是url。所以url是一个地址,uri是一个资源。

2.http请求url

www.baidu.com/s?wd=%E7%89…

例如上面这个url,主要有6部分,其中前面的https:// 告诉浏览器使用上面方案/协议,通常有http、https、ftp、mailto。第二部分www.e-cology.com.cn是个域名,指向了网咯上的一台主机服务器,DNS域名系统会将英文的域名解析成具体的ip地址,因为英文的地址方便我们记忆。后面部分是端口,http端口默认80,https是443,用于访问服务器上的资源,像我们应用都有一个端口。第四部分/wui/index.html是服务器上的资源路径,用于访问服务器上的具体资源。?后面跟着的是参数,可以有多个参数,key=value的形式,多个用&分隔。最后#后面的是片段,是资源某一部分的锚点,浏览器将会自动滚动到锚点的那部分。url长度根据浏览器服务器的不同而有不同限制。 

3. 长连接和短连接

HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。

HTTP/1.0:1996年发布,默认使用短连接,提出长连接(也叫持久连接)的概念,但当时仅提供初步的支持。

HTTP/1.1:1999年发布,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入Connection:keep-alive代码。HTTP/1.1时期,持久连接(长连接)的弊端被提出 —— HOLB(Head of Line Blocking)即持久连接下一个连接中的请求仍然是串行的,如果某个请求出现网络阻塞等问题,会导致同一条连接上的后续请求被阻塞。
4. User-Agent

在使用HTTP协议进行请求时,HTTP协议头部会添加User-Agent,该信息可以标识请求者的一些信息,如什么浏览器类型和版本、操作系统,使用语言等信息。User-Agent会告诉网站服务器,访问者是通过什么工具来请求的,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。

5.相对路径和绝对路径

绝对路径:绝对路径是指文件在硬盘上真正存在的路径。例如D:\weaver\ecology\img\test01.jpg下的这个文件的路径就是绝对路径。

相对路径:相对路径,就是相对于自己的目标文件位置。例如上面的路径,ecology目录下有个html/main.html文件需要引用test01.jpg,就可以使用../img/test01.jpg相对路径来引用。相对路径使用“/”字符作为目录的分隔字符,而绝对路径可以使用“\”或“/”字符作为目录的分隔字符。相对路径里常使用“../”来表示上一级目录。如果有多个上一级目录,可以使用多个“../”。

6.base>标签

标签为页面上的所有链接规定默认地址或默认目标。标签必须在标签中使用。使用 标签后浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。

7.url encode

URL只能使用指定的字符:英文字母、阿拉伯数字和部分特定字符。其它字符会被编码转义成可用的格式。encodeURI(uri)/decodeURI(uri) 针对整个URI,不会编码/解码那些对于URI字符串有特殊含义的保留字符(reserved characters),不会编码/解码那些组成一个完整URI所需的那些保留字符。