http

《HTTP权威指南》每章的知识点总结

View the Project on GitHub lvzhenbang/http

内容提要

URI的分类

URL的语法


	<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

其中:

scheme:方法描述了请求资源时用了什么协议,用“:”与url其它部分隔开;

user:用户名描述了访问是带的用户名;

password:密码描述了用户名后面可能跟的密码,用“:”跟用户名隔开;

host:主机描述了网站主机名或ip地址,如果前面有用户名和密码,用@分开;

post:服务器当前正在监听的端口,http默认为80,https默认为443;

path:路劲描述了资源在服务器上的位置,用‘/’跟前面部分隔开;

params:参数描述了请求需要附加的参数,用“;”与其他部分隔开;

query:查询是用来激活服务器程序去执行某些操作,比如查询数据库等,用“?”与其余部分隔开;

frag:片段只在客户端使用,不发送到服务器端;

URL快捷方式

url编码

Q:为什么需要编码?

A:主要从url的一致性、安全性、以及完整性来强调需要对url字符进行编码。比如因为一个url连接的两端可能出现的机器种类很多,为了让大家都能够解析出一个相同的url,所以有必要对某些不安全的url字符进行转义。

Q:url字符集由什么编码构成?

A:早前的url是有US-ASCII码编码,但是随着网络在全世界的流行,有很多字符是US-ASCII不能编码的,因为US-ASCII码最多只能编译127个字符。通过转义序列,就可以用US-ASCII字符集的有限子集对任意字符值或数据进行编码了。

Q:编码机制?

A:为了避开安全字符集表示法带来的限制,人们设计了一种编码机制,用来在URL中表示各种不安全的字符。这种编码机制就是通过一种“转义”表示法来表示不安全字符的,这种转义表示法包含一个百分号(%),后面跟着两个表示字符的ASCII码的十六进制数。

Q:那些字符不建议在URL里面使用?

A:在URL中,有几个字符被保留起来,有着特殊的含义。有些字符不在定义的US-ASCII可打印字符集中。还有些字符会与某些因特网网关和协议产生混淆,因此不赞成使用,比如“%”。