Http, Https协议

# Http, Https协议

* 参考资料

  * [HTTP](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/HTTP.md)

  * [快速理解https实现的原理](https://www.jianshu.com/p/35f78893aa50)

### 常见问题

* Http协议

>>

http是在网络协议的应用层, 用户通过http协议访问网站时, 浏览器和服务器之间是明文传输, 这就意味着用户填写的密码, 帐号, 交易记录等机密信息都是明文, 随时可能被泄露, 窃取, 篡改, 被黑客加以利用.

* HTTPS的原理(https如何加密)

>>

SSL(Security Socket Layer)全称是加密套接字协议层 

SSL安全机制的通信过程如下: 用户与服务器建立连接后, 服务器会把数字证书与公用密钥发送给用户, 用户端生成会话密钥, 并用公共密钥对会话密钥进行加密, 然后传递给服务器, 服务器端用私人密钥进行解密, 这样, 用户端和服务器端就建立了一条安全通道, 只有SSL允许的用户才能与服务器进行通信

* HTTP 状态码

>>

1XX 信息(表明到目前为止都很正常,客户端可以继续发送请求或者忽略这个响应) 

2XX 成功

3XX 重定向

4XX 客户端错误, 403 Forbidden, 404 Not Found 

5XX 服务器错误

* 常见的请求头

>>

[不需要全记,仅供查阅](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/HTTP.md#%E9%80%9A%E7%94%A8%E9%A6%96%E9%83%A8%E5%AD%97%E6%AE%B5)   

有 4 种类型的首部字段:通用首部字段、请求首部字段、响应首部字段和实体首部字段 

* http缓存协议

>>

[缓存](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/HTTP.md#%E4%BA%94%E5%85%B7%E4%BD%93%E5%BA%94%E7%94%A8)     

Cookie是服务器发送给客户端的数据, 该数据会被保存在浏览器中, 并且客户端的下一次请求报文会包含该数据. 通过Cookie可以让服务器知道两个请求是否来自于同一个客户端, 从而实现保持登录状态等功能.   

Session是服务器用来跟踪用户的一种手段, 每个Session都有一个唯一标识: Session ID. 当服务器创建了一个Session时, 给客户端发送的响应报文包含了Set-Cookie字段, 其中有一个名为sid的键值对, 这个键值对就是Session ID. 

客户端收到后就把Cookie保存在浏览器中, 并且之后发送的请求报文都包含Session ID. 

HTTP就是通过Session和Cookie这两种方式一起合作来实现跟踪用户状态的, Session用于服务器端, Cookie用于客户端

### todo

* HTTPS 握手的步骤和过程

* OKHttp 的源码和原理

* Retrofit 的源码和原理

* HTTP 2.0 有没有了解过

* Volley能否进行数据量很大的请求,比如说加载100M的图片

* Volley的优缺点

* Volley源码,优缺点

* Volley返回数据量比较大的请求时怎么办

* https是如何保证安全的,证书如何校验

* Tcp/Udp

你可能感兴趣的:(Http, Https协议)