当前位置: 首页 > article >正文

了解HTTP与HTTPS以及SSL

HTTP协议是超文本传输协议(HyperText Transfer Protocol)的缩写,它是一种基于TCP协议的应用层传输协议,用于在客户端和服务器之间进行数据交换的一种规则。

HTTP协议的主要特点有:

  • 无状态:每次请求都是独立的,服务器不会保存客户端的任何信息,也不会记录请求之间的关系。
  • 简单:HTTP协议的格式和语法都很简单,易于实现和扩展。
  • 可靠:HTTP协议基于TCP协议,保证了数据的可靠传输。
  • 灵活:HTTP协议允许客户端和服务器自定义请求和响应的内容和格式,支持多种数据类型和编码方式。
  • 无连接:每次请求只需要建立一次TCP连接,请求结束后就断开连接,节省了资源和时间。

HTTP协议的基本工作流程是:

  • 客户端向服务器发送一个HTTP请求,包含请求行、请求头和请求体。
  • 服务器接收到请求后,根据请求行中的方法、路径和版本,进行相应的处理,并返回一个HTTP响应,包含状态行、响应头和响应体。
  • 客户端接收到响应后,根据状态行中的状态码,判断响应是否成功,并根据响应头中的信息,对响应体进行解析和显示。

Http里有什么东西?

HTTP里有很多东西,但最主要的是两种东西:请求和响应。

请求是客户端向服务器发送的数据,包含了客户端想要获取或操作的资源的信息。请求由请求行、请求头和请求体组成。请求行包含了请求的方法、路径和协议版本。请求头包含了一些与请求相关的元数据,如内容类型、内容长度、用户代理等。请求体包含了请求的具体内容,如表单数据、文件数据等。

响应是服务器向客户端返回的数据,包含了服务器对客户端请求的处理结果。响应由状态行、响应头和响应体组成。状态行包含了响应的协议版本、状态码和状态描述。状态码用于表示响应的成功或失败,以及失败的原因。响应头包含了一些与响应相关的元数据,如内容类型、内容长度、缓存控制等。响应体包含了响应的具体内容,如网页数据、图片数据等。

HTTP与HTTPS的区别?

HTTP和HTTPS的区别主要有以下几点:

  • HTTP是超文本传输协议,是一种明文传输的协议,不提供任何数据加密或身份认证的功能,容易被窃听或篡改。
  • HTTPS是超文本传输安全协议,是一种在HTTP的基础上增加了SSL/TLS层的协议,可以提供数据加密和身份认证的功能,保护数据的隐私和完整性。
  • HTTP使用80端口,HTTPS使用443端口。
  • HTTP的网址以http://开头,HTTPS的网址以https://开头。
  • HTTP的性能比HTTPS稍快,因为HTTPS需要额外的加密和解密的过程。

为什么HTTP的网址会弹出警告页?

HTTP不安全的原因主要有以下几点:

  • HTTP是一种明文传输的协议,也就是说,HTTP请求和响应中的数据都是未加密的,任何人都可以在网络中截取和查看这些数据,这就可能导致用户的隐私泄露或敏感信息被窃取。
  • HTTP没有身份认证的机制,也就是说,用户无法确认自己访问的网站是否真实可信,也无法保证自己发送的数据是否到达了正确的服务器,这就可能导致用户被欺骗或者被中间人攻击。
  • HTTP没有完整性保证的机制,也就是说,用户无法确定自己接收到的数据是否完整且未被篡改,也无法保证自己发送的数据是否被正确地处理,这就可能导致用户看到错误的内容或者遭受数据损坏的风险。

为什么有些HTTPS的网址也会弹出危险警告提示?

有些HTTPS的网址也会弹出危险警告提示的原因可能有以下几种¹:

  • 网站的SSL证书已经过期或者被吊销,这意味着网站的身份认证已经失效,无法保证网站的真实性和可信度。
  • 网站的SSL证书是自签名的或者不受信任的机构颁发的,这意味着网站的身份认证没有经过第三方的验证,无法保证网站的真实性和可信度。
  • 网站的SSL证书与网站的域名不匹配,这意味着网站的身份认证与网站的实际地址不一致,可能是被劫持或者伪造的。
  • 网站使用了混合内容,即在HTTPS的网页中引用了HTTP的资源,这意味着网站的部分内容没有被加密,可能被窃听或者篡改。

什么是SSL?

SSL是安全套接字层(Secure Sockets Layer)的缩写,它是一种标准的安全技术,用于在服务器和客户端之间建立加密链接,保护数据的隐私和完整性。

SSL的工作原理是:

  • 客户端向服务器发送一个SSL握手请求,包含了客户端支持的SSL版本、加密算法和随机数。
  • 服务器向客户端返回一个SSL握手响应,包含了服务器选择的SSL版本、加密算法、随机数和服务器的SSL证书。
  • 客户端验证服务器的SSL证书,如果有效,就使用服务器的公钥加密一个对称密钥,并发送给服务器。
  • 服务器使用自己的私钥解密对称密钥,并向客户端发送一个加密的消息,表示握手完成。
  • 客户端和服务器使用对称密钥加密和解密后续的数据传输。

SSL证书是一种数字证书,用于证明网站或电子邮件服务器的身份和公钥。SSL证书由受信任的第三方机构(如DigiCert)颁发,包含了网站或电子邮件服务器的域名、组织名称、位置、有效期等信息。用户可以通过浏览器或电子邮件客户端查看和验证SSL证书。

(如DigiCert)颁发,包含了网站或电子邮件服务器的域名、组织名称、位置、有效期等信息。用户可以通过浏览器或电子邮件客户端查看和验证SSL证书。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yMBosMi9-1681307771152)(img/SSL工作原理.gif)]


http://www.kler.cn/news/10585.html

相关文章:

  • HBuilderX 开发工具
  • 设计模式之《责任链模式》
  • CentOS安装docker
  • 如何使用ChatGPT在1天内完成毕业论文
  • 停车场管理系统文件录入(C++版)
  • JAVA面试真题2023
  • 当深度学习遇上Web开发:Spring和OpenAI如何实现图片生成?
  • NumPy 秘籍中文第二版:五、音频和图像处理
  • k8s、docker关联目录占用空间太大
  • JUC编程之——线程的start方法及底层源码
  • 用Kamailio修复FreeSWITCH的sdp
  • 信息系统项目管理师第四版知识摘编:第23章 组织通用管理​
  • 【MySQL】delete和truncate的用法和区别
  • 每个企业经营者都应该了解的几个网络安全趋势
  • Loki采集Mysql errorlog,你值得拥有的错误日志聚合系统
  • C#调试与测试 | Assert(断言)
  • 【Pytorch】神经网络搭建
  • 常用位运算和二进制做权限管理
  • 熟练了Flex布局之后,该学学Grid布局了
  • 前端项目-12-个人中心-二级路由配置-导航守卫-懒加载
  • Linux常见操作命令【三】
  • 算法模板(2):数据结构(3) 复杂数据结构1
  • Java14新特性
  • sql server存储过程
  • Java------Stream流式编程高级API【groupingBy、flatMap】(六)
  • 记2023第十四届蓝桥杯感受
  • 初识linux之线程控制
  • (二十三)槽函数的书写规则导致槽函数触发2次的问题
  • Microsoft Intune部署方案
  • 为pip永久性添加国内镜像安装源