关于HTTP基础内容,大家可以参考之前写的博客:
这里我们讲解一些关于HTTP重难点:
1.什么是HTTP协议?
HTTP协议是超文本传输协议,是客户端与服务端连接的基础,当客户端向服务端发送请求时,服务端接收、处理并返回相应结果给客户端,特点是无连接和无状态,即每次请求都会建立新的连接、服务端不保存客户端状态信息
2.cookie与seesion理解?
cookie是一个存储在客户端浏览器上的一个功能模块,客户端第一次访问服务端时,会得到一个响应中带Session ID的相关信息内容,存放在浏览器上就是Cookie,Cookie分为会话Cookie(浏览器关闭失效)和持久Cookie(根据时间等信息来确定失效)
Session是存放在服务端内存等位置、保留客户端相应信息,来解决HTTP是无状态的问题
相关内容:HTTP cookie 与 session-CSDN博客
3.HTTPS与HTTP区别
两者都是应用层协议,HTPPS在HTTP基础上加入加密层,利用非对称加密、对称加密+证书机制来保证双方通信信息不泄露,其余部分没什么区别
4.HTTPS加密过程
1.客户端向服务端发送支持的加密算法 2.服务端选择加密算法,并返回携带非对称加密的证书 3.客户端验证证书,生成对称加密密钥用非对称就加密公钥加密发送给服务端 4.服务端用非对称私钥解密得到相应的对称加密密钥 5.双方用对称加密密钥发送信息
5.不同状态码如何理解?
2XX:表示成功,例如200---OK
3XX:重定向,301---永久重定向 302---暂时重定向
4XX:客户端错误,404---访问的页面不存在
5XX:服务端错误,503---服务器维护暂无法加载请求
6.HTTP版本更迭讲解
HTML/0.9:仅支持文本传输、仅支持GET请求方法和无响应头信息
HTML/1.0:引入POST、HEAD等请求方法,支持多种数据格式传输、存在响应头信息、面向无连接的
HTML/1.1:因为如果双方用tcp+https通信,要六次握手+四次挥手,无连接太浪费时间,从而引出长连接,通过Connect:keep-alive(close)实现,同时增加管道化技术,即一次请求发出后可以立即发送下次请求,不需要等待第一次返回才能发送二次请求,实现并行传输
HTML/2.0:如果第二次及其以后的请求比第一次请求先返回,这些响应时无效的,所以为了结局HTTP对头阻塞问题,通过报文拆分为帧,添加流标识符,同时增加优化内容:1.HPACK算法压缩头部 2.支持服务器推送数据向客户端(类似Websocket)
HTML/3.0:tcp+tcs六次握手还是不够优秀,但是tcp与系统是绑定的,所以刘勇udp+quic优化tcp(简称tcp2.0)优点:1.解决tcp下不同html版本之间对头阻塞问题 2.实现更快连接 3.网络连接状态变化时,不需要重连
7.HTTP使用的是TCP还是UDP协议?
这里要分版本说明,在HTTP/3.0之前HTTP/1和HTTP/2都是用TCP协议,HTTP/3时用UDP+QUIC协议来替换TCP,解决tcp队头阻塞,减少连接延迟,实现更快连接
8.HTTP是长连接还是短连接?
HTTP/0.9和HTTP/1.0是短连接的,其后都是长连接,但是可以通过设置connection:close来关闭长连接
以上就是HTTP相关的内容,感谢你的支持!!!