HTTP协议的理解

简介

HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。

注意:客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务器。这取决与请求的发起端。HTTP协议属于应用层,建立在传输层协议TCP之上。客户端通过与服务器建立TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。

HTTP 是一种无状态 (stateless) 协议, HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务, 提高效率。

然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie

HTTP URL

HTTP URL 包含了用于查找某个资源的详细信息, 格式如下:

http://host[":"port][abs_path]

HTTP请求

http请求由请求行,消息报头,请求正文三部分构成。

HTTP请求状态行

请求行由请求MethodURL 字段和HTTP Version三部分构成, 总的来说请求行就是定义了本次请求的请求方式, 请求的地址, 以及所遵循的HTTP协议版本

例如:

GET /example.html HTTP/1.1 (CRLF)

HTTP协议的方法有: GET: 请求获取Request-URI所标识的资源 POST: 在Request-URI所标识的资源后增加新的数据 HEAD: 请求获取由Request-URI所标识的资源的响应消息报头 PUT: 请求服务器存储或修改一个资源,并用Request-URI作为其标识 DELETE: 请求服务器删除Request-URI所标识的资源 TRACE: 请求服务器回送收到的请求信息,主要用于测试或诊断 CONNECT: 保留将来使用 OPTIONS: 请求查询服务器的性能,或者查询与资源相关的选项和需求

 

HTTP请求头

消息报头由一系列的键值对组成,允许客户端向服务器端发送一些附加信息或者客户端自身的信息,主要包括:

HTTP协议的理解

 

HTTP请求正文

只有在发送POST请求时才会有请求正文,GET方法并没有请求正文。

上一篇:Java篇:Java网络编程(三)URL


下一篇:启动常见系统Activity