撰写日期:2019年04月11日
HyperText Transfer Protocol协议是因特网上应用最为广泛的一种网络传输协议,简称为 “HTTP协议”。
HTTP协议是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP协议初始定义了三种请求方法,分别是 GET, POST 和 HEAD方法。
- GET: 请求指定的页面信息,并返回实体主体
- POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体
- HEAD: 只请求页面的首部
HTTP协议通常是链接形式展现给我们看的,以下面一条链接为例:
http://www.baidu.com:8080/dome/Login.asp?UserID=3&ID=62&page=1#ClassName
从上面的链接我们可以看出这个的链接有以下几部分组成:
-
协议部分:该链接的协议部分为“http:”,这就告诉我们这个网页使用的是HTTP协议。在因特网中有好几种协议,如HTTP协议,FTP协议等等,这个网页就是运用了HTTP协议。在之后的"HTTP"后面的“//”为分隔符。
-
域名部分:该链接的域名部分为“www.baidu.com”。这个部分就好像是路边的指示牌一样,指向着你要去的方向。这个部分也可以使用IP地址作为域名使用,IP地址也像是路向标一样。
-
端口部分:在域名后面的是端口部分,域名部分与端口部分之间使用“:”作为分隔符。端口部分不是链接必须的部分,如果省略掉端口部分,那么它就会启用默认端口80。
-
虚拟目录部分:从域名部分之后的第一个分隔符“/”开始到最后一个分隔符“/”就是虚拟目录部分。虚拟目录也不是链接必须的部分。这个链接的虚拟目录为“/dome/”.
-
文件名部分:从域名部分后的最后一个分隔符“/”开始到“?”为止;如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止;如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。这里的文件名是“Login.asp”。
-
锚部分:从“#”开始到最后,都是锚部分。这里的锚部分是“ClassName”。
-
参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。这里的参数部分为“UserID=3&ID=62&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
HTTP协议有一个HTTP Status Code(简称HTTP状态码)的回复消息,这是访问网页时浏览器向所在服务器发出请求,然后服务器回复网页所发出来的信息以响应浏览器的请求。
到现在为止,我只见过以下四种HTTP状态码:
- 301 - 资源(网页等)被永久转移到其它URL
- 400 - 客户端请求的语法错误,服务器无法理解
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
而见得最多的就是404(Not Found)与500(Internal Server Error):
如有错漏,感谢纠正!