编码:把使用者能看懂的数据转化成程序可以读懂的数据;
解码:把程序可以读懂的数据转换成使用者能看懂的数据;
- A URI (Uniform Resource Identifier) is a string that refers to a resource.
- URI(统一资源标识符)是一个指向资源的字符串
- URI可视为URL或者URN或者两者兼有。
按照 URI 标准,http://www.cisco.com/en/US/partners/index.html —— 实际上是一个 URI,并且它由以下三部分组成:
ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:[email protected]
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
注意:www.yahoo.com/sports不是一个真正的URI,它只是对
http://www.yahoo.com/sports 的一种简写,是一种受流行的
web浏览器用户界面支持的格式;
绝对的URI指以scheme(后面跟着冒号)开头的URI。
可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。如果使用文件系统作类比,绝对的URI类似于从根目录开始的某个文件的径。
http://域名
mailto:[email protected]
news:地址
xyz://whatever
相对的URI不是以scheme(后面跟着冒号)开始的URI。
可以把相对的URI看作是以某种方式引用某种资源,而这种方式依赖于标识符出现的环境。如果用文件系统作类比,相对的URI类似于从当前目录开始的文件路径。
articles/articles.html
../icons/logo.gif
../文件D
- Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.
- URL 通常用来指定Web上资源文件的具体位置。
- In the context of HTTP,URLs are called “Web address” or “link”
- URLs can also be used for file transfer (FTP) , emails (SMTP), and other applications.
URL格式由下列三部分组成:
ftp://ftp.is.co.za/rfc/rfc1808.txt
URL 表示的是实际的地址,而不是准确的名字。这就意味着 URL 会告诉你资源此时处于什么位置,它会为你提供特定端口上特定服务器的名字,告诉你在何处可以找到这个资源。这种方案的最大弊端在于,如果资源被移走了,URL 也就不再有效了。那时,它就无法对对象进行定位了。
- A URI can be further classified as a locator, a name, or both. The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism(e.g., its network “location”). The term “Uniform Resource Name”(URN) has been used historically to refer to both URIs under the “urn” scheme [RFC2141], which are required to remain globally unique and persistent even when the resource ceases to exist or becomes unavailable, and to any other URI with the properties of a name.
An individual scheme does not have to be classified as being just one of “name” or “locator”. Instances of URIs from any given scheme may have the characteristics of names or locators or both, often depending on the persistence and care in the assignment of identifiers by the naming authority, rather than on any quality of the scheme. Future specifications and related documentation should use the general term “URI” rather than the more restrictive terms “URL” and “URN” [RFC3305].
URI 可以进一步分为定位器、名称,或者二者兼具。术语“Uniform Resource Locator” (URL) 涉及的是 URI 的子集,除识别资源外,它还通过描述其最初访问机制(比如它的网络“位置”)来提供定位资源的方法。 术语“Uniform Resource Name” (URN) 在历史上曾用于引用“urn”方案 [RFC2141] 下的 URI,这个 URI 需要是全球惟一的,并且在资源不存在或不再可用时依然保持不变,对于其他任何拥有名称的一些属性的 URI,都需要使用这样的 URI。
对于单独的方案,没有必要将其分为仅仅是一个 “名称”或者是一个“定位器”。 来自任意特定方案的 URI 实例可能有名称或定位器的特征,或两者兼而有之, 这通常取决于标识符分配中的持久性和命名机构对其关注程度, 而不取决于其他方案的质量。未来的规范和相关的文档应当使用通用术语“URI”,而不是使用有更多限制的条目“URL”和“URN” [RFC3305]。
参考从原理上搞定编码(二)-- Web编码所写
当浏览器请求一个静态html页面时,服务器会将html页面的字节流通过网络传输给浏览器,浏览器再将字节流解码成相应的html文本字符,然后将html渲染出来。
此流程中浏览器如何判断用什么编码格式去解码呢?
在html的head标签中会有一个meta标签,charset属性如果指定为“UTF-8”浏览器就会用UTF-8解码html页面。
问题是在浏览器解析< meta />标签获取页面编码前,浏览器是用什么解析< meta />标签的呢?
因为html开头都是字母,基本不会存在ASCII码之外的字符,所以识别起来还是有难度的。
测试代码,第5行和第6行,会根据不同的测试条件分别打开注释,具体打开哪个后边会有提示。
UTF-8
Get 请求
Post 请求