HTTP超文本协议
http(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定。也就是说,http协议规定了超文本传输所要遵守的规则。
特点
支持客户/服务器模式
简单快速
灵活
无连接
无状态(没有记忆能力)
请求/响应步骤
客户端连接到Web服务器
发送HTTP请求
服务器接受请求并返回HTTP请求
释放连接TCP连接
客户端浏览器解析HTML内容
在浏览器地址栏键入URL,按回车之后的流程
DNS解析
TCP连接(根据IP地址和默认关口)
发送HTTP请求
服务器请求处理并返回HTTP报文
浏览器解析渲染页面
连接结束
HTTP状态码
1xx:指示信息–请求已经接受,继续处理
2xx:成功
3xx:重定向
4xx:客户端错误,请求有语法错误
5xx:服务端错误:服务端未能实现合法的请求
常见状态码
200 OK:正常
400 Bad Request:客户端请求有语法错误
404 Not Found:请求资源不存在,输入了错误的URL
403 Forbidden:服务器收到请求,但拒绝提供服务
500 Internal Server Error 服务器出错
503 Server Unavailable:当前不能处理客户端请求,一段时间后可能恢复正常
Cookie和Session的区别
cookie的由来
HTTP协议是无状态的,无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。
状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此cookie就是在这样一个场景下诞生。
Cookie
是服务器发给客户端的特殊信息,以文本形式存放在客户端
客户端再次请求的时候,会把Cookie回发
服务器收到后,会解析Cookie生成与客户端相对应的内容
(网页的记住密码,通过Cookie实现)
session的由来
cookie虽然在一定程度上解决了“保持状态“的需求,但是由于cookie本身最大支持4096字节,以及cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且他保存在服务器,有较高的安全性。这就是session。
Session
服务器端的机制,在服务器上保存的信息
解析服务器请求并操作session id,按需求保存状态信息
区别
Cookie存放在客户端浏览器上,Session放在服务器上
Session相对于Cookie更安全
若考虑减轻服务器负担,应当使用Cookie
HTTP和HTTPS的区别
HTTPS是安全版HTTP
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密
HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。