HTTP详解

发布于:2025-08-01 ⋅ 阅读:(14) ⋅ 点赞:(0)

关于HTTP基础内容,大家可以参考之前写的博客:

应用层协议HTTP-CSDN博客

这里我们讲解一些关于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基础上加入加密层,利用非对称加密、对称加密+证书机制来保证双方通信信息不泄露,其余部分没什么区别

应用层协议HTTP-CSDN博客

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相关的内容,感谢你的支持!!!