HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用
于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
HTTP/0.9作用是传输传输超文本内容 HTML。
协议定义了客户端发起请求、服务端响应请求的通信模式。
HTTP1.1和HTTP1.0的区别
HTTP1.1
持长连接,每个TCP
连接上可以传送多个HTTP
请求和响应,默认开启Connection:Keep-Alive
HTTP1.0
默认为短连接,每次请求都需要建一个TCP
连接。HTTP1.0
主要使 If-Modified-Since/Expires
来做为缓存判断的标准HTTP1.1
则引入了更多的缓存控制策略例如Entity tag / If-None-Match
等更多可供选择的缓存头来控制缓存策略。HTTP1.1
的连接,使得请求管线化成为可能。管线化使得请求能够“并行”传输,但是响应必须按照请求发出的顺序依次返回,性能在一定程度上得到了改善。Web
站点。HTTP1.0
中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分, 服务器却将整个对象送过来了,并且不 持断点续传功能HTTP1.1
则在请求头引 了range
头域,它允许只请求资源的某个部分,即返回码是206(Partial Content)
HTTP2.0与HTTP1.1的区别
(HTTP/2.0)
和传输层(TCP or UDP)
之间增加一个二进制分帧层,从而突破HTTP1.1
的性能限制,改进传输性能,实现低延迟和高吞吐量。HTTP/2
连接发起多重的请求-响应消息,这个强大的功能则是基于“二进制分帧”的特性。HTTP1.1
不支持header
数据的压缩,HTTP/2.0
使 HPACK
算法对header
的数据进行压缩,这样数据体积小了,在网络上传输就会更快。高效的压缩算法可以很大的压缩header
,减少发送包的数量从而降低延迟。HTTP/2
中,服务器可以对客户端的一个请求发送多个响应,即服务器可以额外的向客户端推送资源,而无需客户端明确的请求。建立连接:
断开连接:
所有 HTTP 客户端(浏览器)、服务器都可在任意时刻关闭 TCP 连接。通常会在一条报文结束时关闭连接,但出错的时候,也可能在首部行的中间或其他任意位置关闭连接。
HTTP的常见请求方式
HTTPS工作原理(怎么建立连接):
HTTP 常见的状态码有哪些?
HTTPS与HTTP的区别:
HTTP
是明文传输,HTTPS
通过SSL\TLS
进行了加密
HTTP
的端号是80,HTTPS 是 443
HTTPS
需要到CA
申请证书
HTTP
的连接简单,是无状态的;HTTPS
协议是由 SSL+HTTP
协议构建的可进行加密传输、身份认证的网络协议,比HTTP 协议安全。
SSL与TLS
HTTPS 解决了 HTTP 的哪些问题?
HTTP 由于是明文传输,存在以下三个风险:
对称加密与非对称加密
HTTPS 采用的是对称加密和非对称加密结合的「混合加密」方式。
对称加密只使用一个密钥,运算速度快,密钥必须保密,无法做到安全的密钥交换。
非对称加密使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,解决了密钥交换问题但速度慢。