HTTP(Hyper Text Transform Trotocol)
计算机网络 HTTP
1、Https与Http的不同
- http的url以http://开头, https的url以https://
- http是没有加密的,不安全的,https是加密的,安全的,因为https的加密,也会比http耗时。
2、http的特性
http是无状态协议,对事物处理没有记忆功能,所以提出了cookie和session
3、cookie和session
cookie通过客户端记录的信息确定用户身份,seession通过在服务端记录信息确定用户身份。这两种机制用于弥补http协议无状态的不足。
3.1、cookie机制
- 服务端给客户端颁发一个通行证,这样服务端就能从通行证上确认客户身份了。
- Java中把Cookie封装成了javax.servlet.http.Cookie类。每个Cookie都是该Cookie类的对象。服务器通过操作Cookie类对象对客户端Cookie进行操作。通过request.getCookie()获取客户端提交的所有Cookie(以Cookie[]数组形式返回),通过response.addCookie(Cookiecookie)向客户端设置Cookie。
- cookie具有不可跨域名性
3.2、session机制
session保存在服务器上,是服务端记录客户端状态的一种机制。
3.3、两者区别
- cookie数据存放在浏览器上,session数据存放在服务器上
- cookie不是很安全
- 生命周期上,浏览器从启动到关闭,session就消失了,cookie是预先设置的生命周期,或永久的保存于本地文件。
- Session信息是存放在server端,但session id是存放在client cookie的。
4、URI与URL
- URI, uniform resource identifier, 统一资源标识符,用来唯一的标识一个资源。一般组成部分:访问资源的命名机制+存放资源的主机名+资源自身的名称
- URL,uniform resource locator,统一资源定位器,它是一种具体的uri,是internet上服务描述资源的字符串,一般组成部分:协议+主机IP地址+主机资源的具体地址。
- URI是相对的,URL是绝对的
5、常用的HTTP方法
- GET 获取服务端资源
- POST 用于传输信息个服务端
- PUT 传输文件
- HEAD 获取报文首部,一般获取文件大小之类的
- DELTE 删除文件
- OPRTIONS 获取服务端支持的HTTP方法
6、HTTP请求报文与相应报文
6.1、HTTP请求报文
- 报文首部:请求行(请求方法、URI、HTTP版本信息)、请求首部、通用首部字段、实体首部字段
- 空行
- 报文主体
6.2、HTTP相应报文
- 报文首部:状态行(HTTP版本,状态码)、响应首部字段、通用首部字段、实体首部字段
- 空行
- 报文主体
6.3、首部字段
- 通用首部字段:Data Connection Cache-Control Transfer-Encoding
- 请求首部字段:HOST ACCEPT
- 响应首部字段:Location Server Accept-Ranges
- 实体首部字段:Content-Type
6.4、网络传输过程

7、HTTPS(Http + SSL)
7.1、安全证书
CA(Certificate Authority)是提供证书的机构。
* 服务方 S 向第三方机构CA提交公钥、组织信息、个人信息(域名)等信息并申请认证
* CA 通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等
* 如信息审核通过,CA 会向申请者签发认证文件-证书。
证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名;
签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名;
7.2、HTTPS加密流程

8、SOCKET
Socket文章
8.1、Socket是什么
Socket是应用层与TCP/IP协议簇通信的中间软件抽象层,Socket相当于一种门面模式,把复杂的TCP/IP协议簇隐藏在Socket接口后面。

9、Http 1.1
- 默认保持长连接,只要客户端、服务端任意一端没有明确提出TCP连接,就可以一直保持连接,可以发送多次HTTP请求。
- 管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应
- 断点续传,利用HTTP消息头使用分块传输编码,将实体主体分块传输。
10、HTTP2.0
10.1 http 1.x的缺点
- 一次只允许在一个TCP连接上发起一个请求
- 单向请求,只能由客户端发起
- 请求报文与响应报文首部信息冗余量大
- 数据未压缩,导致数据的传输量大
10.2 HTTP 2.0
- 新的二进制格式
- 多路复用
- header压缩
- 服务端推送