我们都知道关于 HTTP 一直都是面试里面经常被问到的内容,也是在开发的时候遇到的一些关于 HTTP 的状态码的问题,从而来定位解决问题。今天了不起就来说一下这个关于 HTTP 的相关知识。
什么是 HTTP 呢?
HTTP 称为 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
HTTP 的迭代:
0.9协议是适用于各种数据信息的简洁快速协议,但是远不能满足日益发展的各种应用的需要。0.9协议就是一个交换信息的无序协议,仅仅限于文字。由于无法进行内容的协商,在双发的握手和协议中,并有规定双发的内容是什么,也就是图片是无法显示和处理的。
到了1.0协议阶段,也就是在1982年,Tim Berners-Lee提出了HTTP/1.0。在此后的不断丰富和发展中,HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响应建立并拆除一次连接。其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。
在1.0协议中,双方规定了连接方式和连接类型,这已经极大扩展了HTTP的领域,但对于互联网最重要的速度和效率,并没有太多的考虑。毕竟,作为协议的制定者,当时也没有想到HTTP会有那么快的普及速度。
HTTP2.0的前身是HTTP1.0和HTTP1.1。虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼。网络协议新版本并不会马上取代旧版本。实际上,1.0和1.1在之后很长的一段时间内一直并存,这是由于网络基础设施更新缓慢所决定的。
HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:
其实也可以理解为下面的五个步骤
1、客户端向服务器发送请求消息,请求消息中包含请求方法、URL、协议版本以及请求头等信息。
2、服务器接收到请求消息后,根据请求消息的URL和相应的处理逻辑,生成服务器响应消息,并将其发送给客户端。
3、响应消息中包含协议版本、状态码、响应头和响应体等信息。
4、客户端接收到响应消息之后,会根据自身的处理方式进行处理,例如如果是网页,客户端会解析响应体中的HTML代码并渲染出网页。
5、如果需要继续与服务器通信,客户端可以发起新的请求,并重复上述步骤。
而且 在HTTP协议中,客户端和服务器之间不会保持持久连接,每次请求需要重新与服务器建立连接。
又因为 HTTP 是一种无状态协议,也就是说服务器并不会维护客户端的状态信息。所以就有了 Cookie 和 Session 的出现了。而 Cookie 和 Session 就是用来维持状态的。
说到状态,我们就又想到了状态码,那么 HTTP 的状态码都有哪些呢?
了不起直接就想到了 200,404 ,500 这些状态码,那么我们再来看一下 HTTP 的状态码有多少吧。
不得不说,还真挺多,不看不知道,一看吓一跳那种。
1xx(信息性状态码)
2xx(成功状态码)
204 No Content
3xx(重定向状态码)
4xx(客户端错误状态码)
5xx(服务器错误状态码)
既然都了解了 HTTP 那么必然就引出了 HTTPS 为什么呢?因为你在开发的过程中有没有遇到过的那种,有些页面访问地址是 HTTP 也有些页面是 HTTPS 的,那么 HTTP 和 HTTPS 有什么区别和联系呢?
HTTPS :是以安全为目标的HTTP通道, 通俗说就是安全版本的HTTP
为啥叫做HTTPS , S的含义, SSL:加密,在HTTP下加入SSL层
那加入 SSL 层的意义在哪呢?
因为HTTP的请求信息是明文传输, 容易被窃取 HTTP不会验证对方的信息, 存在被冒充的风险 数据的完整性没有校验, 容易被中间人篡改,所以就会增加了 SSL 来保证安全。
SSL操作步骤:
**HTTP 和 HTTPS 的区别
关于 HTTP 你了解了么?
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有