HTTP协议

2018-12-23  本文已影响0人  小七饮酒

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

一.发起HTTP请求
在地址栏输入url再回车,就发起了HTTP请求,然后会看到请求的结果。

url(统一资源定位符)也称网页地址,是互联网标准地址。
协议://服务器ip[:端口]/路径/[?查询]

如,http://www.aaa.com/post/httpxieyi.html 就是一个标准的url。

HTTP详解
HTTP是一种无状态协议,无状态是指web浏览器与web服务器之间不需要建立持久的连接,客户端向服务器端发送请求,然后web服务器返回响(Reponse),就关闭连接,在服务器不保留连接有关的信息,HTTP请求只能由客户端发起,而服务器不能主动的向客户端发送数据。

HTTP遵循请求(Request)/应答(Reponse)模型,web浏览器向web服务器发送请求时,web服务器处理请求并返回相应的应答。 image

1.HTTP请求与响应
(1)HTTP请求
HTTP主要包括三个部分,分别是请求行(请求方法),请求头(消息报头)和请求正文。

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8

<html>
<head></head>
<body>

</body>
</html>

第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
第二部分:消息报头,用来说明客户端要使用的一些附加信息

第二行和第三行为消息报头,
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
第三部分:空行,消息报头后面的空行是必须的
第四部分:响应正文,服务器返回给客户端的文本信息。

空行后面的html部分为响应正文。

2.HTTP请求方法
HTTP请求方法非常多,其中get,post最常见。

(1)GET请求
get方法用于获取请求页面的指定信息(以实体的格式),如果请求资源为动态脚本,返回文本是web容器解析后HTML源代码,而不是源文件

GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive
(2)POST请求
post方法和get方法相似,区别在于,get方法没有请求内容,而post是有请求内容的。post最多用于向服务器发送大量数据,但是get有大小长度限制,并且get会将发送的数据显示在浏览器上,而post不会,所以安全性相对高一点。

POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

3.HTTP状态码
当客户端发送请求,服务器端接收后,会向客户端发送信息,其中,HTTP响应的第一行中,最重要的一点就是状态码,

HTTP/1.1 200 OK
此状态码为200,在HTTP协议中表示请求成功。HTTP状态码由三位数字组成第一位定义了相应的类别,且只有五种。

常见状态码:
200:客户端请求成功,是最常见的状态。
302:重定向。
404:请求资源不存在,是最常见的状态。
400:客户端请求有语法错误,不能被服务器理解。
401:请求未经授权。
403:服务器收到请求,但拒绝提供服务。
500:服务器内部错误,是最常见的状态。
503:服务器当前不能处理客户的请求,一段时间后可恢复正常。

上一篇下一篇

猜你喜欢

热点阅读