1.简要介绍
URL:Uniform Resource Locator,统一资源定位符
URI:Uniform Resource Identifier,统一资源标识符
2.URL
URL,也就是我们平常所说的“网址”。我们通常使用浏览器去访问web服务器就是从输入网址开始的。但是实际上浏览器不止有这个功能,它还可以在FTP服务器上下载和上传文件,可以具有电子邮件客户端的功能……总的来说,浏览器是一个具有各种不同的客户端软件,而我们区分功能就需要用到不同的url。
下面列举4种浏览器url:
http://user:passerword@www.xxxxx.com:80/dir/file1.htm
访问方法://用户名(可省):密码(可省)@Web服务器域名:端口号(可省)/文件的路径名
ftp://user:passerword@ftp.xxxxx.com:21/dir/file1.htm
访问方法://用户名(可省):密码(可省)@FTP服务器域名:端口号(可省)/文件的路径名
file://localhost/c:/path/file1.zip
访问方法://计算机名(可省)/文件的路径名
mailto:yuhang.shang@qq.com
访问方法://邮件地址
注:不同的服务器具有不同的编号,例如Web是80,邮件是25等。
我们以第一个url为例:
http://user:passerword@www.xxxxx.com:80/dir/file1.htm
http
部分:表示访问Web服务器时应该使用HTTP协议(HTTP:Hypertext Transfer Protocol,超文本传送协议)
user
部分:用户名(可省略)
passerword
部分:密码(可省略)
www.xxxxx.com
部分:Web服务器域名
80
部分:端口号(可省略)
/dir/file1.htm
部分:文件的路径名
3.URI
浏览器在使用HTTP协议访问Web服务器时,发送的请求消息包含两个部分:方法
和URI
。“方法”是“进行怎样的操作”,“URI”指出“对什么”进行操作。
URI:一般来说,URI的内容是一个存放网页数据的文件名或者一个CGI程序的文件名,亦或者是可以直接用URL来作为URI。总的来说,URI就是访问目标。
方法:http有许多方法,最主要的是get
和post
方法。除此以外,还有head
、options
、put
、delete
、trace
、connect
等方法。
4.HTTP请求消息
大体流程:客户端浏览器先发送给Web服务器由URI和方法构成的请求消息,Web服务器收到后返回客户端浏览器响应消息。(这是一个很复杂的过程,其中还有DNS解析、建立套接字连接等,但在这里我们先不详述)
a.请求消息
1 <方法><空格><URI><空格><HTTP版本>
2 <字段名>:<字段值>
3 ...
4 ...
5 ...
6 <空行>
7 <消息体>
第1行称为请求行,通过这一行可以大概了解请求的内容。
第2-5行称为消息头,每行包含一个头字段,用于表示请求的附加信息。
第7行部分称为消息体,包含客户端向服务器发送的数据,例如POST方法发送的网页表单数据。
b.响应消息
1 <HTTP版本><空格><状态码><空格><响应短语>
2 <字段名>:<字段值>
3 ...
4 ...
5 ...
6 <空行>
7 <消息体>
第1行称为状态行。
第2-5行部分称为消息头。
第7行部分称为消息体,包含服务器向客户端发送的数据,例如从文件中读取的数据,或者CGI应用程序输出的数据。消息体的内容作为2进制数据来处理。
c.状态码
状态码的第一位数字表示状态类型,第二、三位数字表示具体的情况。如下表。
状态码 | 含义 |
---|---|
1xx | 告知请求的处理进度和情况 |
2xx | 成功 |
3xx | 表示需要进一步操作 |
4xx | 客户端错误 |
5xx | 服务器错误 |