URL语法--《HTTP权威指南》

URL语法格式

URL语法的一般格式由下面九个部分组成

://:@:/;?#

组成部分

(组成部分)Component 描述 默认值
scheme 获取资源时使用的协议 None(无)
user 某些协议需要用户名才可以获取资源 anoymous(匿名)
password 你可能需要在用户名后添加的密码(:分隔) 取决于浏览器
host 域名或者IP地址 None(无)
port 端口号 由协议类型指定默认值,如http即为80
path 文件资源路径,可以由服务器指定 None(无)
params 被某些协议用来指定输入参数,参数是 名/值对,一个URL可以包含多个参数对,用";"和 其他的参数对分隔 None(无)
query 被某些协议用来指定输入参数,参数是 名值对,一个URL可以包含多个参数对,用";"和 其他的参数对分隔 None(无)
frag 资源的一部分的一个名称,不会被提交到服务器,使用"#"分隔:例如网页中的“书签”,用来跳转到一个网页的指定位置 None(无)

scheme,host,port,path,query等大家应该都很熟悉,这里就不再介绍,只介绍username password还有params

usernames and Passwords(用户名和密码)

很多服务器都会要求你输入用户名和密码,例如FTP服务器,下面是一些典型例子

ftp://ftp.prep.ai.mit.edu/pub/gnu
ftp://[email protected]/pub/gnu
ftp://anonymous:[email protected]/pub/gnu
http://joe:[email protected]/sales_info.txt

第一个例子没有输入user和password,由最基本的协议,主机,和路径组成。
如果一个需要用户名和密码的协议而却没有输入用户名和密码,通常都会插入一个默认的用户名和密码,它会使用anoymous作为你的用户名,并且使用一个默认的密码,(IE使用"IEUser",Navigator使用"mozilla")

Params

一些协议只是用host,path来获取数据是不行的。有些协议需要传递参数来正确的获取数据,否则会得到错误的响应结果,或者根本不会得到响应。比如FTP,它有两种传输模式:1.二进制 2.文本
为了告诉应用程序具体是哪种传输模式,就需要传递参数,例如:

ftp://prep.ai.mit.edu/pub/gnu;type=d

你可能感兴趣的:(URL语法--《HTTP权威指南》)