一,一次HTTP请求,程序一般经历的步骤
1)解析域名
2)发起TCP三次握手,建立连接
3)基于TCP发起HTTP请求
4)服务器响应HTTP请求,并返回数据
5)客户端解析返回数据
二,HTTP几种常用的响应状态码
200:表示成功正常请求
400:语义有误,一般是请求格式不对
401:需求用户验证权限,一般是证书token没通过认证
403:拒绝提供服务
404:资源不存在
500:服务器错误
503:服务器临时维护,过载;可恢复
三,session和cookie的区别
1)存储位置不同,cookie是保存在客户端的数据;session的数据存放在服务器上
2)存储容量不同,单个cookie保存的数据小,一个站点最多保存20个Cookie;对于session来说并没有上限
3)存储方式不同,cookie中只能保管ASCII字符串;session中能够存储任何类型的数据
4)隐私策略不同,cookie对客户端是可见的;session存储在服务器上,对客户端是透明对
5)有效期上不同,cookie可以长期有效存在;session依赖于名为JSESSIONID的cookie,过期时间默认为-1,只需关闭窗口该session就会失效
6)跨域支持上不同,cookie支持跨域名访问;session不支持跨域名访问
四,HTTP分块传送及好处
分块传送是HTTP的一种传输机制,允许服务端发送给客户端的数据分成多个部分,该协议在HTTP/1.1提供
1.HTTP分块传输编码允许服务器为动态生成的内容维持HTTP持久连接
2.分块传输编码允许服务器在最后发送消息头字段。对于那些头字段值在内容被生成之前无法知道的情形非常重要,例如消息的内容要使用散列进行签名
3.HTTP服务器有时使用压缩 (gzip或deflate)以缩短传输花费的时间。分块传输编码可以用来分隔压缩对象的多个部分。在这种情况下,块不是分别压缩的,而是整个负载进行压缩。分块编码有利于一边进行压缩一边发送数据
五,HTTP的长连接
1.长连接是指客户端和服务建立TCP连接后,它们之间的连接会持续存在,不会因为一次HTTP请求后关闭,后续的请求也是用这个连接
2.长连接可以省去TCP的建立和关闭操作,对于频繁请求的客户端适合使用长连接,但是注意恶意的长连接导致服务受损(建议内部服务之间使用)
六,HTTP的安全性以及加强
并非安全,HTTP传输的数据都是明文的,容易被第三方截取;要做安全传输数据,可以使用HTTP的升级版HTTPS协议
七,HTTPS和HTTP的区别
1)http协议的连接是无状态的,明文传输
2)HTTPS是由SSL/TLS+HTTP协议构建的有加密传输、身份认证的网络协议
八,SSL/TLS是什么,HTTPS的安全性是怎样实现的?
1.SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议加密层,保障数据私密性。TLS(Transport Layer Security)则是升级版的SSL
2.https在http基础加了一层安全认证及加密层TLS或者SSL,它首先会通过安全层进行ca证书认证,正确获取服务端的公钥
3.接着客户端会通过公钥和服务端确认一种加密算法,后面的数据则可以使用该加密算法对数据进行加密