HTTP与HTTPS协议区别
HTTP与HTTPS协议区别
1、前言
- TCP/IP协议是分层的
- 从顶层至底层:应用层、传输层、网络层、链路层、物理层
2、HTTP协议简介
- 协议:计算机通信网络中,两台计算机之间进行通信所需要共同遵循的规定或者规则
- HTTP:超文本传输协议,是一种应用层的协议,由请求和响应构成,是一个标准的客户端服务器模型
- HTTP可以通过传输层的TCP协议在客户端和服务端之间传输数据
- HTTP只要应用web浏览器和web服务器之间的数据交换
- HTTP是一种协议,只要通信的双方都遵守这个协议,HTTP就能有用武之地
2.1、HTTP协议的主要特点
- 支持客户/服务器模式
- 简单快速:客户想服务器请求服务时,只需要传送请求方法和路径。请求方法通常用的有GET/POST/HEAD。每种方法规定了客户与服务器联系的类型不同,由于HTTP协议简单,使得HTTP服务器的程序规模小,因此通信速度很快
- 灵活:HTTP允许传输任意类型的数据对象,由Content-Type加以标记
- 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的响应后,即断开连接
- 无状态:HTTP协议似乎无状态协议,无状态是只协议对于事务处理没有记忆能力。缺少状态以为者如果后续处理需要前面的信息,必须重传,这样可能导致每次连接传送的数据量很大。另一方面,在服务器不需要先前信息时它的应答就很快。同一个客户端的这次请求和上次请求没有对应关系,对HTTP服务器来说,它并不知道这两个请求来自同一个客户端
2.2、HTTP协议工作流程
- 一次HTTP操作称为一个事务,其工作过程分为4步
- 首先客户机与服务器需要建立连接,只要单击某个超链接,HTTP就开始工作
- 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容
- 服务器接收到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息,实体信息和可能的内容
- 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接
2.3、URL详解
- URL(Uniform Resource Locator)
- schema://host[:port#]/path/…/[?query-string]
- schema:指定底层使用的协议(http、https、ftp)
- host:HTTP服务器的IP地址或者域名
- port:HTTP服务器的默端口是80,这种情况下端口可以省略
- path:访问资源的路径
- query-string:发送给http服务器的数据
- anchor-:锚
- 例如:http://www.aitemi6.com/atm/index.jsp?name=aitemi&flag=true#stuff
2.4、请求
Http请求由三部分组成
- 请求行
- 消息报文
- 请求正文
Request消息分为3部分
- Request line
- Request header
- body
2.4.1、请求行
- Method:表示请求方法
- Path-to-resource:请求的资源
- Http/Version-number:表示HTTP协议的版本号
- 当使用GET请求时,body为空
- GET/POST区别
- GET提交的数据在URL之后,POST提交的数据在HTTP包的body中
- GET提交的数据有大小限制,POST提交的数据无大小限制
- GET需要使用Request.QueryString来取得变量值,POST通过Request.Form来获取变量值
- GET提交数据会带来安全问题
2.4.2、消息报头
- HTTP消息报头包括普通报头、请求报头、响应报头、实体报头
- 每一个报头域都是有名字+”:”+空格+值组成,消息报头域的名字是大小写无关的
- Accept:请求报头域,用于指定客户端接收哪些类型的消息,image/gif
- Accept-Charset:用于指定客户端接受的字符集
- Accept-Encoding:可接受的内容编码,如果没有设置,即表示都可以接受
- Accept-Language:指定一种自然语言
- Authorization:主要用于证明客户端有权查看某个资源,当浏览器访问一个页面时,如果收到服务器的响应代码是401,可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证
- Host:主要用于指定被请求资源的Internet主机和端口号,他通常从HTTP URL中提取出来
- User-Agent:获取浏览器相关信息
3、HTTPS协议简介
- HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
- HTTPS是一个安全通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换信息
- HTTPS使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全办
- HTTPS是有Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送的结果
- HTTPS世界上应用了Netscape的安全套接字层SSL作为HTTP应用层的子层
- HTTPS使用端口是443,而不是像HTTP那样使用端口80来和TCP/IP进行通信
- SSL使用40位关键字作为RC4流加密算法,这对于商业信息的加密是合适的
- HTTPS和SSL支持使用X.509数字认证
3.1、HTTPS简介
- HTTPS其实是有两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加上了一层处理加密信息的木块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据
3.2、HTTPS加/解密
- 客户端发起HTTPS请求
服务端的配置
- 采用HTTPS协议的服务器必须有一套数字证书,可以自己制作,也可以向组织申请
- 区别就是自己办法的证书需要客户端验证通过,才可以继续访问,而使用受信任的证书则不会弹出提示页面
- 这套证书其实就是一堆公钥和私钥
传送证书
- 这个证书其实就是公钥,包含了很多信息
客户端解析证书
- 由客户端的TLS来完成的,首先会验证公钥是否有效
- 如果证书没有问题,就生成一个随机值
- 然后用证书对对该随机值进行加密
传送加密信息
- 这部分传送的是用证书加密后的随机值
- 目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了
服务端解密信息
- 服务端用私钥解密后,得到了客户端穿过来的私钥,然后把内容通过该值进行对称加密
- 所谓对称加密,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全
传输加密后的信息
- 这部分信息是服务段私钥加密后的信息,可以在客户端被还原
客户端解密信息
- 客户端用之前生成的私钥解密服务端传来的信息,于是获取了解密后内容
4、HTTP和HTTPS异同
4.1、相同点
- 都是采用同一个基础协议作为HTPP或HTTPS客户端—浏览器
- 设立一个连接到Web服务器指定的端口
- 服务器接收到请求,会返回一个状态码以及消息
- 系统使用统一资源定位器URI模式,因此资源可以被唯一指定
4.2、不同点
- HTTP的URL是以http://开头。HTTPS的URL是以https://开头
- HTTP是不安全的,HTTPS是安全的
- HTTP是80端口,HTTPS是443端口
- 在OSI网络模型中,HTTP处于应用层,HTTPS工作在传输层
- HTTP无需加密,HTTPS需要加密
- HTTP无需证书,HTTPS需要安装证书
4.3、如何选择
加入为了安全保密,将一个网站所有的Web应用都启用SSL技术来加密,并使用HTTPS协议进行传输,那么该网站的性能和效率将会大大降低,而且没有这个必要,因为一般来说并不是所有数据都要求那么搞的安全保密级别,所以,我们只需对哪些设计机密数据的交互处理使用HTTPS协议
HTTP与HTTPS协议区别相关推荐
- 说说 Http协议与https协议区别
Http协议与https协议区别: 1:https协议需要到ca申请证书,一般免费的证书比较少,一般都需要交费 2:http是超文本传输,信息是文明 传输,https则具备有安全性的ssl加密传输协议 ...
- web专题 HTTP介绍和HTTPS协议区别,以及http版本特性
HTTP协议 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工 ...
- http和https的区别 与 SSL/TLS协议运行机制的概述
http和https的区别 与 SSL/TLS协议运行机制的概述 参考1 1 http 是不使用的SSL/TSL的通信通道 窃听风险:第三方获取通信内容 篡改风险:修改通信内容 冒充风险:冒充他人身份 ...
- HTTP和HTTPS协议的区别
什么是HTTPS: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息 ...
- SSL协议、HTTP和HTTPS和区别
SSL协议 SLL协议的握手过程 开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake). 第一步,客户端给出协议版本号.一个客户端生成的随机数(Clien ...
- 应用层协议:HTTP与HTTPS协议详解、二者的区别
http协议详解 1.HTTP协议:超文本传输协议 是一种分布式.合作式.多媒体信息系统服务,面向应用层的协议.是一种通用的,不分状态的协议.是一种请求/应答协议. 1.1.HTTP/1.0和HTTP ...
- HTTP协议工作原理(与HTTPS的区别)
HTTP是超文本传输协议,由请求和响应构成,HTTP协议永远都是客户端发起请求,服务端回送响应 HTTP协议工作原理 首先,DNS会解析域名获取IP地址 而后TCP通过三次握手建立链接 建立链接后客户 ...
- HTTP协议与HTTPS的区别
permike 原文 HTTP协议与HTTPS的区别 HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. HTTP是在七层网络模型中的应用层的协议,由发送请求和接受响应构成, ...
- 什么是HTTP协议和HTTPS协议,以及两者的区别
HTTP协议 超文本传输协议(Hyper Text Transfer Protocol),是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及得到什么样的 ...
最新文章
- [EffectiveC++]item17:以独立语句将newed对象置入智能指针
- 多线程:interrupted、isinterrupted区别
- 华为诺亚开源贝叶斯优化库:超参数调优河伯、组合优化器CompBO
- PHP使用header方式实现文件下载
- rocketmq 消息 自定义_RocketMQ消息轨迹-设计篇
- 关于算法--分治法--合并排序
- 别在我的坟前哭 脏了我轮回的路
- 固件 日立 硬盘_最强性价比储存方案体验:这硬盘盒,真香!
- ensure函数_vue按需加载组件webpack require.ensure的方法
- 湖南麒麟下安装mellanox网卡驱动问题
- 真机调试报错 Could not locat device support files
- 加菲猫语录精选74 中英俄三语版
- 怎样查询本机ip地址?如何利用花生壳获取外网IP教程
- 华科图书情报专硕考研复试与读研
- 存储过程中的关键字--AS、GO的含义
- 【二叉树】重建二叉树
- 矩阵奇异值计算的一种新方法——基于R语言实现
- jupyter内核无法连接,出现error,代码无法运行解决办法
- 在Blender中使用代码控制人物模型的头部姿态 - 代码实践mediapipe版本
- 新版语音直播社交APP源码 多人连麦聊天/双端APP源代码 附编译说明
热门文章
- [windows][操作系统]复制文件夹到桌面经常到跑左上角导致桌面图标位置错乱
- 乐高机器人纲要_机器人校本课程纲要.doc
- oracle的drop列,Oracle 删除列 drop columns
- python+selenium实现自动化百度搜索关键词
- 经典题目——n阶幻方
- 许昌天气预报软件测试,许昌天气预报15天
- 写一个块设备驱动3,4(转)
- IDEA检测不到JDK明明有JDK
- Spring5中文文档【1】Spring框架概述
- “工厂模式和抽象工厂的区别”的认识