Android逆向之https,android实战项目源码

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用层最为广泛的一种网络协议。

发展史

协议 发展 说明
HTTP/0.9 1991年定稿最早的HTTP协议,没有作为正式标准 只有GET命令;没有请求头、请求体、返回头;服务器只能读取HTML文件以ASCII字符流返回给客户端;默认80端口
HTTP/1.0 1996年发布,正式作为标准 引入了POST、HEAD等命令、请求头、响应头、状态码;提供了缓存、多字符集支持、multi-part、authorization、内容编码等;默认不是持久连接
HTTP/1.1 1997年发布,2015年前使用最广 默认持久连接不必声明keep-alive;引入pipelining管道机制,同一TCP连接里同时发送多个请求,但服务器需按照请求顺序串行返回响应;请求头新增Host,使同一台物理服务器可以同时部署多个web服务
HTTPS 互联网巨头大力推行 在传统HTTP协议的TCP与HTTP之间加入一层SSL/TLS;通过混合加密、摘要算法、数字证书来保证安全性;使用443端口
SPDY 2009年由Google公开,不是标准已逐渐被HTTP/2取代 基于TLS,在HTTPS的SSL层与HTTP层之间增加一层SPDY层;支持多路复用,可在同一TCP连接并发处理多个HTTP请求;可以赋予请求的优先级顺序;支持请求头和响应头压缩;支持服务器向客户端主动推送、提示
HTTP/2 2015年发布,逐步覆盖市场 基于SPDY的标准化协议,可在TCP上使用不是必须在TLS上;HTTPS连接时使用了NPN的规范版ALPN;消息头的压缩算法采用新算法HPACK,而SPDY采用DEFLATE;依然没有解决TCP对头阻塞问题
QUIC/HTTP3 2012由Google提出,2015年提交给IETF,下一代互联网标准传输协议 不再是基于TCP而是通过UDP;使用 stream 进一步扩展了 HTTP/2 的多路复用;引入 Connection ID,使得 HTTP/3 支持连接迁移以及 NAT 的重绑定;含有一个包括验证、加密、数据及负载的 built-in 的TLS安全机制;将拥塞控制移出了内核,通过用户空间来实现;头部压缩更换成了兼容 HPACK的QPACK压缩方案

状态码

状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,共分为5种类型:

分类 说明
1** 表示请求已被接受,需要继续处理的临时响应
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

方法

方法的名称区分大小写,并且通常是一个简短的单词,由英文大写字母组成。

接收请求时,服务器尝试确定请求的方法,如果失败,则返回带有代码 501 和短语的响应消息 Not Implemented

方法 说明 1.0、1.1中支持的协议版本
GET 获取资源 1.0、1.1
POST 传输实体主体 1.0、1.1
PUT 传输文件 1.0、1.1
HEAD 获得报文首部 1.0、1.1
DELETE 删除资源 1.0、1.1
OPTIONS 删除资源 1.0、1.1
TRACE 追踪路径 1.1
CONNECT 将服务器作为代理,让服务器代替用户去访问 1.1
LINK 建立和资源之间的联系 1.0
UNLINK 断开连接关系 1.0

首部

http首部主要分为五大部分:

  1. 通用首部:各种类型的报文(请求、响应报文)都可以使用,提供有关报文最基本的信息。
  2. 请求首部:专用于请求报文的首部,用于给服务器提供相关信息,告诉服务器客户端的期望和能力。
  3. 响应首部:专用于响应报文的首部,用于告诉客户端是谁在响应以及响应者的能力。
  4. 实体首部:用于描述http报文的负荷(主体),提供了有关实体及其内容的相关信息。
  5. 扩展首部:非标准首部,由应用开发者定义的首部。

(以下整理的首部并非完全按照这五类划分,部分扩展首部也按照功能划入了请求首部、响应首部等部分)

通用首部
字段名 说明 示例
Cache-Control 控制缓存的行为 Cache-Control: no-cache
Connection 逐跳首部、连接的管理(HTTP/1.1默认持久连接) Connection: close
Date 创建报文的日期时间 Date: Tue, 15 Nov 2010 08:12:31 GMT
Pragma HTTP/1.1之前版本的历史遗留字段,用来包含实现特定的指令 Pragma: no-cache
Trailer 说明传输中分块编码的编码信息 Trailer: Max-Forwards
Transfer-Encoding 逐跳首部,指定传输报文主体时使用的编码方式 Transfer-Encoding: chunked
Upgrade 升级为其他协议 Upgrade: HTTP/2.0, SHTTP/1.3, IRC
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值