# 你真正了解http协议吗?

HTTP协议(HyperText Transfer Protocol,超文本传输协议),是一种网络传输协议。是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

# HTTP工作原理

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端(web服务器)发送所有请求。web服务器接(Apache,IIS,Nginx)收到请求后,向客户端发送响应信息。http默认端口80。

http工作原理图

# 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]来传输

# 客户端请求消息

![请求消息](http://xinyu666.cn:8091/blog/img/请求消息.png)

1.请求行

请求行由三部分组成,方法(GET),URI(/),HTTP版本(HTTP/1.1)

GET / HTTP/1.1
1

# 服务器响应消息(状态行,消息报头,空行,响应正文)

![请求消息](http://xinyu666.cn:8091/blog/img/服务器响应消息.png)

# 相关资料

HTTP 请求方法 (opens new window) HTTP 教程 (opens new window)

全量分析

评 论:

上次更新时间: 4/2/2020, 4:26:54 PM