HTTP/HTTPS

1. HTTP/HTTPS介绍

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是当今世界上应用最为广泛的网络安全技术。

2. HTTP协议

HTTP协议双方有客户端和服务端,客户端发送请求,服务端要响应请求,客户端发送的我们叫请求报文,服务端发送的我们叫响应报文,内容都在报文中,HTTP协议就是要解析报文中的内容。我们来看下报文的结构。

2.1 请求报文

在这里插入图片描述
通过上图,请求报文由两部分构成,首部和主体,首部是HTTP协议规定的一些字段,而主体则是实际传输的内容。我们重点要看首部的结构,其中请求首部、通用首部、实体首部我们单独一节列举,以后用到的话则实际查询即可。接下来我们看下请求行的组成,包括方法、URI和HTTP版本。

2.1.1 请求方法
方法说明
GET获取资源
POST传输实体主体
PUT传输文件
HEAD获得报文首部
DELETE删除文件
OPTIONS询问支持的方法
TRACE追踪路径
CONNECT要求用隧道协议连接代理
LINK建立和资源之间的联系
UNLINK断开连接关系
2.1.2 URI

URI(Uniform Resource Identifier)统一资源标识符,它的意义是用一种规定的格式来定义互联网上的资源。我们所熟知的还有URL(Uniform Resource Locator)统一资源定位符,这是我们访问页面要输入的网址。URL就是URI的子集。

2.2 响应报文

在这里插入图片描述
我们访问网页的时候会返回“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服务器暂时处于超负载或正在维护,无法处理请求

2.3 HTTP首部

HTTP首部字段是构成报文的要素之一,起着传递额外信息的作用。
HTTP首部字段是由首部字段名和字段值组成,中间用冒号“:”分割

首部字段名 : 字段值

Keep-Alive:timeout=15,max=100
2.3.1 通用首部

通用首部是请求报文和响应报文都会使用的首部

首部字段名说明
Cache-Control控制缓存的行为
Connection逐跳首部、连接的管理
Date创建报文的日期时间
Pragma报文指令
Trailer报文末端的首部一览
Transfer-Encoding指定报文主体的传输编码方式
Upgrae升级为其他协议
Via代理服务器的相关信息
Warning错误通知
2.3.2 请求首部

请求首部是发送请求报文时使用的首部

首部字段名说明
Accept用户代理可处理的媒体类型
Accept-Charset优先的字符集
Accept-Encoding优先的内容编码
Accept-Language优先的语言
AuthorizationWeb认证信息
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-AgentHTTP客户端程序的信息
2.3.3 响应首部

响应首部是从服务器端向客户端返回响应报文时使用的首部

首部字段名说明
Accept-Ranges是否接受字节范围请求
Age推算资源创建经过时间
ETag资源的匹配信息
Location令客户端重定向至指定URI
Proxy-Authorization代理服务器对客户端的认证信息
Retry-After对再次发起请求的时机要求
ServerHTTP服务器的安装信息
Vary代理服务器缓存的管理信息
WWW-Authenticate服务器对客户端的认证信息
2.3.4 实体首部

针对请求报文和响应报文的实体部分使用的首部

首部字段名说明
Allow资源可支持的HTTP方法
Content-Encoding实体主体适用的编码方式
Content-Language实体主体的自然语言
Content-Length实体主体的大小(单位:字节)
Content-Location替代对应资源的URI
Content-MD5实体主体的报文摘要
Content-Range实体主体的位置范围
Content-Type实体主体的媒体类型
Expires实体主体过期的日期时间
Last-Modified资源的最后修改日期时间
2.3.5 其他首部
首部字段名说明
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值