028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

HTTP协议-报文解析-创新互联

概述

HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。
HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息的组成:

创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目成都网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元茅箭做网站,已为上家服务,为茅箭各地企业和个人服务,联系电话:18980820575
  1. 开始行(对于请求消息,开始行就是请求行;对于响应消息,开始行就是状态行)
  2. 消息报头(可选)
  3. 空行(只有CRLF的行)
  4. 消息正文(可选)组成。
一、请求报文

http请求由四部分组成:

  1. 请求行
  2. 消息报头/请求头
  3. 空行
  4. 请求正文
1.1 请求行

Method Request-URI HTTP/Version CRLF

(1) Method

HTTP请求方法

请求方法描述
GET请求获取Request-URI所标识的资源
POST在Request-URI所标识的资源后附加新的数据
HEAD请求获取由Request-URI所标识的资源的响应消息报头
PUT请求服务器存储一个资源,并用Request-URI作为其标识
DELETE请求服务器删除Request-URI所标识的资源
TRACE请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求
(2) Request-URI

URI完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头

(3) HTTP/Version

协议/版本

1.2 请求头

Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、Host、User-Agent等。

1.3 请求正文

请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。

二、响应报文

http响应由四部分组成:

  1. 状态行
  2. 消息报头/响应头
  3. 空行
  4. 响应正文
2.1 状态行

HTTP/Version Status-Code Reason-Phrase CRLF

(1) HTTP/Version

协议/版本

(2) Status-Code Reason-Phrase

HTTP状态码

状态码分类描述
1xx指示信息–表示请求已接收,继续处理
2xx成功–表示请求已被成功接收、理解、接受
3xx重定向–要完成请求必须进行更进一步的操作
4xx客户端错误–请求有语法错误或请求无法实现
5xx服务器端错误–服务器未能实现合法的请求
状态码列表描述
200 OK客户端请求成功
400 Bad Request客户端请求有语法错误,不能被服务器所理解
401 Unauthorized请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden
404 Not Found请求资源不存在,eg:输入了错误的URL
500 Internal Server Error服务器发生不可预期的错误
503 Server Unavailable服务器当前不能处理客户端的请求,一段时间后可能恢复正常
2.2 响应头

Location、Server、WWW-Authenticate等

2.3 响应正文

响应头和响应正文之间是一个空行,这个行非常重要,它表示响应头已经结束,接下来的是响应正文。

三、消息报头

包括普通报头、请求报头、响应报头、实体报头。
每一个报头域都是由 “名字:值” 组成,消息报头域的名字是大小写无关的。

3.1 普通报头

Connection 报头域允许发送指定连接的选项。

Cache-Control 用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为Pragma。
Cache-Control:no-cache

Date 普通报头域表示消息产生的日期和时间。

3.2 请求报头

Host发送请求时,该报头域是必需的。用于指定被请求资源的主机和端口号,通常从HTTP: URL中提取出来的。

Accept 用于指定客户端接受哪些类型的资源。

Accept-Charset 用于指定客户端接受的字符集。

Accept-Encoding 类似于Accept,用于指定可接受的内容编码。

Accept-Language 类似于Accept,用于指定一种自然语言。

Authorization 用于证明客户端有权查看某个资源。

User-Agent 允许客户端将它的操作系统、浏览器和其它属性告诉服务器。不过,这个报头域不是必需的。

3.3 响应报头

Location 用于重定向接收者到一个新的位置。

Server 表示服务器用来处理请求的软件信息。

WWW-Authenticate 服务器对客户端的认证信息,必须被包含在401(未授权的)响应消息中

3.4 实体报头

Content-Length 用于描述消息实体的传输长度。

Content-Encoding 表示已经被应用到实体正文的编码方式,被用作媒体类型的修饰符。

Content-Type用于指明发送给接收者的实体正文的媒体类型。

Transfer-Encoding 表示描述消息实体的传输编码方式

Content-Language 描述了资源所用的自然语言

Last-Modified 用于指示资源最后的修改日期。

Expires 用于表示消息实体过期的日期时间。

四、请求方法之GET与POST 4.1 GET方法

GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始。
地址中”?”之后的部分就是通过GET发送的请求数据,我们可以在地址栏中清楚的看到,各个数据之间用”&”符号隔开。显然,这种方式不适合传送私密数据。

4.2 POST方法

POST方法可以允许客户端给服务器提供信息较多。
POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,这样POST方式对传送的数据大小没有限制,而且也不会显示在URL中。

4.3 两者区别
  1. 请求数据的形式
  1. 传输数据的大小
  1. 安全性
    POST的安全性要比GET的安全性高。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站标题:HTTP协议-报文解析-创新互联
链接分享:http://www.tsicrk.com/article/hcphs.html

其他资讯

让你的专属顾问为你服务

0.8518s