HTTP学习

概念简介

超文本传输协议(HyperText transfer Protocol),他是基于TCP/IP协议的应用层协议,一般用于B/S架构。

特点

1,支持客户端/服务端模式(C/S)
2,简单快速:请求服务时只需传送请求方法和路径。常用的方法:GET,HEAD,POST,PUT,DELETE
3,灵活:可以传输任意类型的数据对象(标记:Content-Type)
4,无连接:每次连接只处理一个请求。一次请求响应完成后断开连接。后面通过connection:keep-alive实现长连接
5,无状态:是一种无状态协议(对于事务处理没有记忆能力,无状态意味着如果后续处理需要前面的信息则必须重传,这样数据量会增大),所以后续引入Cookie/session等会话追踪来记录管理状态。

请求报文/响应报文

请求报文:请求行(请求方法+URL+协议/版本)+请求头+空行+请求正文(GET没有请求正文)
响应报文:响应行+响应头+空行+响应正文

常用请求方法

GET:请求指定的信息,并返回信息实体(通过URL来提交数据,用?连接,用&连接参数)
HEAD:类似GET,返回的响应中没有信息实体,用于获取报头
POST:向指定资源提交数据进行处理请求(新资源的建立/已有资源的修改)。
PUT:传送数据取代指定文件内容
DELETE:删除指定页面
注:put通常指定了资源的位置,而post则没有。post更像是add数据,put更像是modify数据。
put具有幂等性,post不具有幂等性。(多次操作下结果是一致的)

HTTP安全问题

1,数据传输是明文的,可能被窃听
2,不验证通信方身份,可能遭到伪装
3,无法验证报文完整性,可能被篡改

HTTPS

一般认为HTTPS = HTTP + SSL/TLS,通过SSL证书来验证服务器的身份,并为通信进行加密
SSL:安全套接字层。位于TCP/IP协议与各种应用层协议之间,提数据通讯提供安全支持。
TLS:传输层安全。前身是SSL。
HTTPS采用共享密钥加密(对称)和公开密钥加密(非对称)两者并用的混合加密机制。公开密钥加密处理速度更慢,所以在交换密钥阶段使用公开密钥加密,之后的建立通信交换报文阶段则使用共享密钥加密方式。
对称加密算法用于对真正传输的数据进行加密
非对称加密算法用于在握手过程中加密生成的密码。该算法会生成公钥和私钥,公钥只能用于加密数据,因此可以随意传输,而私钥用于加密数据解密工作,所以都保护着防止泄密。
hash算法用于验证数据的完整性

使用HTTPS传输数据的流程

在这里插入图片描述

HTTPS的缺点

1,SSL证书需要向机构付费
2,SSL设计安全的算法开销会消耗CPU资源,对服务器资源消耗大
3,加密解密导致访问速度变慢

HTTP和Socket区别

1,socket支持TCP和UDP,而http只支持TCP;
2,http使用的是请求-响应方式,需要先请求才能有响应;
3,socket效率高,不用解析报文头啥的;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值