HTTP、HTTP2、HTTPS、SPDY等的理解及在spring-boot中的使用

一、缩写含义

Http:HyperText Transfer Protocol,超文本传输协议
Http2:HyperText Transfer Protocol 2.0,超文本传输协议2.0
Https:Hyper Text Transfer Protocol over Secure Socket Layer,基于SSL的超文本传输协议
SPDY:“speedy”的缩写(未考证),读作“SPeeDY”

二、起源及作用

Http是用于从WWW服务器传输超文本到本地浏览器的传输协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。其中RFC 2616定义了HTTP 1.1,即现在通常所说的http协议。

Https,安全套接字层超文本传输协议,在http协议基础上加入了SSL协议,在结构上底层是tcp协议,之上是SSL协议,再之上是http,由于http是明文传输,容易被劫持和篡改,比如正常打开某些网站时出现不应有的广告,https由于加密则可以做到传输信息保密性,完整性和真实性。

Http2是对http协议的升级,支持单一连接多路复用,头部压缩,服务端推送等。在建立一个连接的基础上可以处理多个请求,对请求头部进行压缩。

clipboard.png
SPDY是谷歌研究的基于TCP的应用层协议,是对HTTP的增强,IETF推出了类似于SPDY协议的HTTP2.0后,谷歌就放弃了对SPDY协议的支持。

三、spring中应用

在spring-boot中使用https,可以先用Java自带的keytool生成一个证书,之后在application.properties中配置端口和密码就行,也可以在配置类中配置。
https://docs.spring.io/spring…
使用https后,即可使用http2协议,因为:Spring Boot does not support h2c, the cleartext version of the HTTP/2 protocol.
只要在配置文件中配置属性server.http2.enabled即可

后记:实践不够,只能先理清概念,后续有更深体会再续补充。

补充知识

互联网协议分层:

clipboard.png

创作打卡挑战赛赢取流量/现金/CSDN周边激励大奖

Published by

风君子

独自遨游何稽首 揭天掀地慰生平