目录
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优化
