HTTP和HTTPS相关

目录

HTTP简介

在浏览器地址栏输入URL,按下回车之后经历的流程

HTTP状态码

get和post请求的区别

Cookie和Session的区别

HTTPS数据传输流程

HTTP和HTTPS的区别

HTTPS真的安全吗?


HTTP简介

超文本传输协议http的主要特点:

1、支持客户、服务器模式

2、简单快速:客户端向服务器请求服务时只需传送请求方法和路径,请求方法常用的有GET、HEAD、POST,由于http协议简单,使得http服务程序的规模小,因而通讯速度快

3、灵活:Http允许传输任一类型的数据对象,正在传输的类型由ContentType加以标记

4、无连接:限制每次链接只处理一个请求,服务器处理完客户的请求,并收到客户的应答,则断开链接,采用这种方式可以节省传输时间。

5、无状态:对事务处理没有记忆能力,传送前的状态未知。

 

请求、响应步骤:

1、客户端连接到Web服务器

2、发送HTTP请求

3、服务器接受请求并返回HTTP响应

4、释放TCP连接

5、客户端浏览器解析HTML内容

 

在浏览器地址栏输入URL,按下回车之后经历的流程

1、首先进行DNS解析,解析URL所对应的ip地址

2、发起TCP的3次握手

3、建立TCP连接后,浏览器发起http请求

4、服务器响应http请求浏览器得到html代码

5、浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)

6、浏览器对页面进行渲染呈现给用户

 

HTTP状态码

401 (未授权) 请求未经授权。对于需要登录的网页,服务器可能返回此响应。
403 (禁止)服务器拒绝请求
404 (未找到) 服务器找不到请求的网页。

502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应
503 (服务不可用)服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

 

get和post请求的区别

从三个层面来解答

Http报文层面:GET将请求信息放在URL(浏览器会对地址长度做出限制,明文传输),POST放在报文体中

数据库层面:GET符合幂等性和安全性,POST不符合

其他层面:GRT可以被缓存、被存储,而POST不行

PS:

幂等性:对数据库一次操作和多次操作获得的结果是一致的

安全性:对数据库的操作没有改变数据库中的数据

 

Cookie和Session的区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

 

HTTPS数据传输流程

1、浏览器告诉服务器,我支持哪些算法

2、服务器选择一种算法,把自己的证书发给浏览器

3、浏览器检查证书是否合法,并用证书中的公钥对随机生成的消息进行加密

4、服务器用私钥解密消息,验证哈希,加密响应消息发给浏览器

5、浏览器解密响应消息,如果跟之前发过去的哈希值一致,那么之后都用之前生成的随机密码加密。

 

HTTP和HTTPS的区别

HTTPS需要到CA申请证书,HTTP不需要

HTTPS密文传输,HTTP明文传输

连接方式不同,默认端口也不一样。HTTPS默认使用443端口,HTTP使用80端口

HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全

 

HTTPS真的安全吗?

HTTPS并不是真正的安全,如果在浏览器地址栏只输入网址,不输入协议,浏览器就会默认填充http://,会有被劫持的风险。

可以使用HSTS优化


版权声明:本文为weixin_44953364原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。