permike 原文 HTTP协议与HTTPS的区别


HTTP协议

HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本。

HTTP是在七层网络模型中的应用层的协议,由发送请求和接受响应构成,是一个标准的客户端服务器模型。与此同时,HTTP是一个无状态的协议。也就是说,不能通过一个状态判断连接的状态,因此有时候,计算机之间通信需要通过其他协议来协同工作,一起提供支持。

(1)基于B/S模式,即客户/服务器模式。同时可以提供登陆认证和网间安全传输,例如HTTP下加入SSL层,可以提供安全的HTTPS服务。

每一种请求方法都有自己的适用范围,在请求报文的内部,通过一些规则,说明了用户与Web服务器之间沟通的类型。同时,HTTP协议规则较为简单,因此使用HTTP服务器的系统,代码和程序规模都会比较轻量级,但是通信的速度却效率较高。

数据结构的数据对象。而且,通过一个简单的头信息,例如将正在传输的类型由Content-Type加以标记,于是可以区分开。

同时,高版本HTTP协议,HTTP1.1支持持续连接:多个对象可以通过一个连接可传送,不需要每次传输一个web对象就去创建一个新的连接。

架构》·李智慧)”。

HTTP协议的报文格式
HTTP协议的请求报文

当浏览器向服务器发送一个请求到Web服务器,它发送一个数据块,或请求信息,

请求方法URI协议/版本;

请求正文;

GET/test.jsp HTTP/1.1
Accept:image/test.image/jpeg,*/*
Accept-Language:zh-cn
Connection:Keep-Alive
Host:222.35.232.103
User-Agent:Mozila/5.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding:gzip,deflate
username=idc&password=linuxidc

(1)请求方法URI协议/版本

GET/test.jsp HTTP/1.1

根据HTTP标准,HTTP请求可以使用多种不同的请求方法。例如:HTTP1.1允许支持七种请求方法(也叫“动作”):GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。日常开发中,GET和POST是最常用的方法,主要在相关的Web开发中。

需要注意,方法名称很重要的一点是严格区分大小写。有些时候,某个请求所针对的资源可能不支持对应的请求方法,会通过不同的状态码给出响应。例如,服务器将返回一个状态码405(方法不允许),当请求服务器或方法不理解不支持相应的时间,返回一个状态码501(没有实现)。

请求头包含了一些客户环境和请求的内容信息。例如,请求头可以声明浏览器内核和语言使用,请求的长度等。

windows

请求正文和请求头要有空行。这个空行必须存在,说明结束请求头传输,开始传输正文请求。请求正文中一般包含很多信息,例如用户提交的用户名和密码之类的登陆信息:userlogin=linuxidc&currentpwd=linuxidc

求中一样,请求正文只有简单的一行数据。

(1)协议状态版本代码描述

(3)响应正文

HTTP/1.1 200 OK
Server:Apache Tomcat/7.0.1
Date:Mon,6Oct2014 13:23:42 GMT
Content-Length:102
<html>
<head>
<title>HTTP响应文件<title>
</head>
<body>
这是HTTP响应文件!
</body>
</html>

客户端向服务器发送请求,和请求报文类似,服务器会以状态行响应。

HTTP响应报文的首先是以状态行开始,这些可以参考示例的代码。

与HTTPS协议的区别

Https是一种基于SSL/TLS的Http协议,所有的http数据都是在SSL/TLS协议封装之上传输的。

——>HTTP协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。

——>HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。

算法。

1.浏览器将自己支持的一套加密规则发送给网站。

3.获得网站证书之后浏览器要做以下工作:

b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。

4.网站接收浏览器发来的数据之后要做以下的操作:

b) 使用密码加密一段握手消息,发送给浏览器。

此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。

测试。

非对称加密算法:RSA,DSA/DSS

HASH算法:MD5,SHA1,SHA256

由于浏览器生成的密码是整个数据加密的关键,因此在传输的时候使用了非对称加密算法对其加密。

TLS握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。

HTTP协议与HTTPS的区别的更多相关文章

  1. 大前端学习笔记整理【七】HTTP协议以及http与https的区别

    前言 还是老样子,新博客开始前总是想先啰嗦几句...HTTP协议其实在当初学习java时老师就有提过...但是...反正就那么过去了... 这段时间公司的项目正好要求做https的转换和迁移,然后自己 ...

  2. HTTP和HTTPS的区别

    1.HTTP和HTTPS的概念 超文本传输协议HTTP(Hypertext transfer protocol)是一种详细规定了浏览器和万维网服务器之间相互通信的规则,通过因特网传送万维网文档的数据传 ...

  3. 理解HTTP和HTTPS的区别

    原问转载于https://www.mysubmail.com/chs/blog/view/47 这两天闲来无事,在网上看了一下,发现 HTTP 和 HTTPS 的区别很受关注,多位大牛做了很详细的阐述 ...

  4. php--http与https的区别

    在URL前加https://前缀表明是用SSL加密的.你的电脑与服务器之间收发的信息传输将更加安全. Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定. http和ht ...

  5. http与https的区别以及https的加密原理

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字层 ...

  6. http协议与https协议的前世今生

    一.Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是80 ...

  7. http协议与https协议

    1.前言 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应用层分别为:物理层.链路层.网络层.传输层和应用层,如下图所示: 2.http协议简介 ...

  8. 浅谈HTTP和HTTPS的区别

    这篇随笔我们从六个步骤来学习: 1.了解HTTP和HTTPS的基本概念 2.HTTPS诞生的目的 3.HTTP与HTTPS的区别 4.HTTP和HTTPS的工作原理 5.HTTPS的优缺点 6.如何将 ...

  9. [菜鸟]HTTP 与 HTTPS 的区别

    HTTP 与 HTTPS 的区别 分类 编程技术 基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式.协作式和超媒体信息系统的应用层协议. 简 ...

随机推荐

  1. 对 Android 开发者有益的 40 条优化建议

    本文转载于:http://www.oschina.net/translate/40-developer-tips-for-android-optimization?cmp 下面是开始Android编程 ...

  2. Android TextView换行问题

    本文转载于:http://niufc.iteye.com/blog/1729792 ndroid的TextView在显示文字的时候有个问题就是一行还没显示满就跳到下一行,原因是: 1) TextVie ...

  3. Teaching Your Computer To Play Super Mario Bros. – A Fork of the Google DeepMind Atari Machine Learning Project

    Teaching Your Computer To Play Super Mario Bros. – A Fork of the Google DeepMind Atari Machine Learn ...

  4. Abdicate

    每次,打开背单词软件,背诵单词时,A打头的单词,第一个,永远会是 Abdicate,放弃,抛弃. 真是有意思. 想想在学习js高级程序设计一书时,一横心,决心手动输入书中出现过的每一个代码片段示例. ...

  5. Floating Action Button(漂浮按钮)

    参考:http://blog.csdn.net/pengkv/article/details/46427891 效果图: 步骤一: 在build.gradle添加以下代码,导入包 dependenci ...

  6. threading模块和queue模块实现程序并发功能和消息队列

    简介: 通过三个例子熟悉一下python threading模块和queue模块实现程序并发功能和消息队列. 说明:以下实验基于python2.6 基本概念 什么是进程? 拥有独立的地址空间,内存,数 ...

  7. call和apply的差别

    Call(thisArg,arg1,arg2,-..) apply(thisArg,[arg1,arg2-.])

  8. webpack需要全局安装,才能使用webpack命令

    webpack全局安装,具体项目中才能使用webpack命令: npm install webpack -g

  9. 阿里云nat mysql配置

    # Generated by iptables-save v1. :: *filter :INPUT DROP [:] :FORWARD ACCEPT [:] :OUTPUT ACCEPT [:] # ...

  10. SQLSERVER 复制表--和复制有关的系统表

    主数据库中的复制表 表名 说明 MSreplication_options 表存储供复制在内部使用的元数据. 此表存储在 master 数据库中. msdb 数据库中的复制表 表名 说明 MSagen ...