赞
踩
HTTP(HyperText Transfer Protocol)超文本传输协议,最初的设计理念是:借助多文档之间相互关联形成的超文本,连接成相互参阅的WWW。现在HTTP已经成了Web的基本通信协议。目前最主流的协议版本是HTTP/1.1。
HTTP通信使用的是明文,容易被窃听,对于通信方的身份也无法验证,基于此HTTPS诞生。HTTP加上加密处理和认证以及完整性保护后即是HTTPS(HTTP Secure)。
HTTP在OSI模型中属于应用层,如下图
SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。可以说SSL是当今世界上应用最为广泛的网络安全技术。
HTTP协议双方有客户端和服务端,客户端发送请求,服务端要响应请求,客户端发送的我们叫请求报文,服务端发送的我们叫响应报文,内容都在报文中,HTTP协议就是要解析报文中的内容。我们来看下报文的结构。
通过上图,请求报文由两部分构成,首部和主体,首部是HTTP协议规定的一些字段,而主体则是实际传输的内容。我们重点要看首部的结构,其中请求首部、通用首部、实体首部我们单独一节列举,以后用到的话则实际查询即可。接下来我们看下请求行的组成,包括方法、URI和HTTP版本。
方法 | 说明 |
---|---|
GET | 获取资源 |
POST | 传输实体主体 |
PUT | 传输文件 |
HEAD | 获得报文首部 |
DELETE | 删除文件 |
OPTIONS | 询问支持的方法 |
TRACE | 追踪路径 |
CONNECT | 要求用隧道协议连接代理 |
LINK | 建立和资源之间的联系 |
UNLINK | 断开连接关系 |
URI(Uniform Resource Identifier)统一资源标识符,它的意义是用一种规定的格式来定义互联网上的资源。我们所熟知的还有URL(Uniform Resource Locator)统一资源定位符,这是我们访问页面要输入的网址。URL就是URI的子集。
我们访问网页的时候会返回“404”,这就是状态码
类别 | 原因短语 | |
---|---|---|
1XX | 信息性状态码 | 接受的请求正在处理 |
2XX | 成功状态码 | 请求正常处理完毕 |
3XX | 重定向状态码 | 需要进行附加操作以完成请求 |
4XX | 客户端错误状态码 | 服务器无法处理请求 |
5XX | 服务器错误状态码 | 服务器处理请求出错 |
目前状态码超过60多种,最常用的也就是十几个
状态码 | 信息 |
---|---|
200 OK | 表示从客户端发来的请求在服务器端被正常处理了 |
204 No Content | 表示请求被成功处理,但在返回的响应报文中不含实体的主体部分 |
206 Partial Content | 表示客户端进行了范围请求,而服务器成功执行了这部分GET请求 |
301 Moved Permanently | 表示请求的资源被分配了新的URI |
302 Found | 表示请求的资源被分配了新的URI,但是和301相比,该资源是临时性质的 |
303 See Other | 表示请求资源存在另一个URI |
304 Not Modified | 服务器允许请求访问资源,但是未满足请求条件 |
307 Temporary Redirect | 同302 |
400 Bad Request | 请求报文中存在语法错误 |
401 Unauthorized | 请求需要认证 |
403 Forbidden | 服务器拒绝对请求资源的访问 |
404 Not Found | 服务器上无法找到请求的资源 |
500 Internal Server Error | 表示服务器执行请求时发生了错误 |
503 Service Unavailable | 服务器暂时处于超负载或正在维护,无法处理请求 |
HTTP首部字段是构成报文的要素之一,起着传递额外信息的作用。
HTTP首部字段是由首部字段名和字段值组成,中间用冒号“:”分割
首部字段名 : 字段值
如
Keep-Alive:timeout=15,max=100
通用首部是请求报文和响应报文都会使用的首部
首部字段名 | 说明 |
---|---|
Cache-Control | 控制缓存的行为 |
Connection | 逐跳首部、连接的管理 |
Date | 创建报文的日期时间 |
Pragma | 报文指令 |
Trailer | 报文末端的首部一览 |
Transfer-Encoding | 指定报文主体的传输编码方式 |
Upgrae | 升级为其他协议 |
Via | 代理服务器的相关信息 |
Warning | 错误通知 |
请求首部是发送请求报文时使用的首部
首部字段名 | 说明 |
---|---|
Accept | 用户代理可处理的媒体类型 |
Accept-Charset | 优先的字符集 |
Accept-Encoding | 优先的内容编码 |
Accept-Language | 优先的语言 |
Authorization | Web认证信息 |
Expect | 期待服务器的特定行为 |
From | 用户的电子邮件地址 |
Host | 请求资源所在服务器 |
If-Match | 比较实体标记(ETag) |
If-Modified-Since | 比较资源的更新时间 |
If-None-Match | 比较实体标记(与Id-Match相反) |
If-Range | 资源未更新时发送实体Byte的范围请求 |
If-Unmodified-Since | 比较资源的更新时间 |
Max-Forwards | 最大传输逐跳数 |
Proxy-Authorization | 代理服务器要求客户端的认证信息 |
Range | 实体的字节范围要求 |
Referer | 对请求中URI的原始获取方 |
TE | 传输编码的优先级 |
User-Agent | HTTP客户端程序的信息 |
响应首部是从服务器端向客户端返回响应报文时使用的首部
首部字段名 | 说明 |
---|---|
Accept-Ranges | 是否接受字节范围请求 |
Age | 推算资源创建经过时间 |
ETag | 资源的匹配信息 |
Location | 令客户端重定向至指定URI |
Proxy-Authorization | 代理服务器对客户端的认证信息 |
Retry-After | 对再次发起请求的时机要求 |
Server | HTTP服务器的安装信息 |
Vary | 代理服务器缓存的管理信息 |
WWW-Authenticate | 服务器对客户端的认证信息 |
针对请求报文和响应报文的实体部分使用的首部
首部字段名 | 说明 |
---|---|
Allow | 资源可支持的HTTP方法 |
Content-Encoding | 实体主体适用的编码方式 |
Content-Language | 实体主体的自然语言 |
Content-Length | 实体主体的大小(单位:字节) |
Content-Location | 替代对应资源的URI |
Content-MD5 | 实体主体的报文摘要 |
Content-Range | 实体主体的位置范围 |
Content-Type | 实体主体的媒体类型 |
Expires | 实体主体过期的日期时间 |
Last-Modified | 资源的最后修改日期时间 |
首部字段名 | 说明 |
---|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。