http和https协议
http 与 https
http和https
HTTP 本身不具备加密的功能,所以也无法做到对通信整体(使用 HTTP 协议通信的请求和响应的内容)进行加密。 HTTP之所以会被HTTPS取代,最重要的原因,就是不安全。为什么不安全? -- 按传输层 TCP/IP 协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。 -- 而HTTP 在传输数据的过程中,所有的数据都是明文传输,非常奔放,自然没有安全性可言。数据在公网上传输,容易被第三方获取,尤其特别是一些敏感数据,比如用户密码和信用卡信息等,一旦被第三方获取,后果不堪设想。 HTTPS 主要用于解决数据安全传输的问题,通过加密套件,让数据在网络传输过程中对第三方“不可见”(看见的是无意义的乱码信息)。 在 HTTPS 中,原有的 HTTP 协议会得到 TLS (安全传输层协议) 或其前辈 SSL (安全套接层) 的加密。 因此 HTTPS 也常指 HTTP over TLS 或 HTTP over SSL。 #也就是说 HTTPS = HTTP + SSL / TLS。
https数据传输过程
- 首先客户端向服务端发起TCP请求建立连接(就是三次握手) - 握手成功后才会开始发起http或https请求 - 自身服务器上一般都会有一个公钥A、私钥B和证书 - 客户端(浏览器)像google、百度等都会有一个证书链(CA机构颁发的合法的) - 客户端访问:https://google.com/ (输入:“什么是证书链”)的请求时候、google服务器会将自身的证书和公钥发给客户端验证 - 如果证书不在客户端的证书链中、网页就会返回不安全提示 - 如果证书合法、客户端将会使用服务端给的公钥A来生成一个随机码key、并使用公钥A将key加密、再将加密的key和数据发给服务端 -服务端:当服务端接收到客户端送过来的key后、使用私钥B对key进行解密、解密后拿出请求的数据(“什么是证书链”) - 将其请求的结果用随机码key进行加密、再发送回给客户端、客户端再使用key进行解密取出请求的结果 - 如下图:
http与https的区别
http的特点
#HTTP特点: -- http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。 -- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。 -- 灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。 -- 无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。 -- 无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。 #HTTP报文组成 请求报文构成: -- 请求行:包括请求方法、URL、协议/版本 -- 请求头(Request Header) -- 请求正文 响应报文构成 -- 状态行 -- 响应头 -- 响应正文 常见请求方法 GET:请求指定的页面信息,并返回实体主体。 POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 PUT:从客户端向服务器传送的数据取代指定的文档的内容。 DELETE:请求服务器删除指定的页面 post和get的区别: 都包含请求头请求行,post多了请求body。 get多用来查询,请求参数放在url中,不会对服务器上的内容产生作用。post用来提交,如把账号密码放入body中。 GET是直接添加到URL后面的,直接就可以在URL中看到内容,而POST是放在报文内部的,用户无法直接看到。 GET提交的数据长度是有限制的,因为URL长度有限制,具体的长度限制视浏览器而定。而POST没有
URI和URL的区别
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。 URI:Uniform Resource Identifier 统一资源标识符 URL:Uniform Resource Location 统一资源定位符 URI 是用来标示 一个具体的资源的,我们可以通过 URI 知道一个资源是什么。 URL 则是用来定位具体的资源的,标示了一个具体的资源位置。互联网上的每个文件都有一个唯一的URL。
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/18298927
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步