# 你真正了解http协议吗?
HTTP协议(HyperText Transfer Protocol,超文本传输协议),是一种网络传输协议。是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。
# HTTP工作原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(web服务器)发送所有请求。web服务器接(Apache,IIS,Nginx)收到请求后,向客户端发送响应信息。http默认端口80。
# HTTP三大特性
1.无连接
限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,断开连接。这样做可以节约传输时间
2.媒体独立的
只要客户端和服务端知道如何处理数据内容,任何类容数据都可以通过http发送。客户端以及服务器指定使用适合的MIME-type内容类型。
3.无状态 http协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则必须重传,这样可能导致每次连接的数据量增大。 另一方面,在服务器不需要先前信息时它的应答就较快。
# HTTP/1.0有多少个请求方式?(3种)
1.get(获取资源数据)
get方法用于请求指定的页面信息,并返回请求消息的主体
2.post(提交资源数据)
post方法用于向指定的资源提交数据
3.head(读取资源的元数据)
类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
# HTTP/1.1有多少个请求方式?(9种)
1.get(获取资源数据) (1.0就有)
get方法用于请求指定的页面信息,并返回请求消息的主体
2.post(提交资源数据) (1.0就有)
post方法用于向指定的资源提交数据
3.head(读取资源的元数据) (1.0就有)
类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
4.put(更新资源数据)
从客服端向服务器传送的数据取代指定的文档的内容
5.delete(删除资源数据)
请求服务器删除指定的页面
6.options(为读取资源多支持的所有请求方法)
7.trace(回显服务器收到的请求)
主要用于测试或诊断
8.connect(预留给能够连接改为管道方式的代理服务器)
9.patch(是对put方式的补充)
用来对已知资源进行局部更新
# HTTP消息组成(请求行,消息头,空行,消息体)
HTTP使用统一资源标识符(Uniform Resource Identifiers,URL)来传输数据和建立连接。 一旦建立之后,数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展 (MIME)[RFC2045]来传输
# 客户端请求消息
1.请求行
请求行由三部分组成,方法(GET),URI(/),HTTP版本(HTTP/1.1)
GET / HTTP/1.1
# 服务器响应消息(状态行,消息报头,空行,响应正文)
# 相关资料
HTTP 请求方法 (opens new window) HTTP 教程 (opens new window)