HTTP、HTTPS、HTTP1.0、HTTP1.1

HTTP:Hyper Text Transfer Protocol,超文本传输协议 
       HTTPS:Hyper Text Transfer over Secure Socket Layer Protocol,给予安全套接字层的超文本传输协议 
       HTTPS和HTTP的区别主要如下: 
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。 
       综上,可以简单的理解为HTTPS = HTTP+加密+认证+完整性保护(完整性保护不知道从哪里看出来的,有待进一步理解)

对于HTTP是无状态的,短连接、持久连接也蒙的,查资料得到下面的解释: 
       1、HTTP是一种无状态(stateless)协议 
       是说HTTP协议自身不对请求和响应之间的通讯状态进行保存,不保存之前一切请求和响应的报文信息,是为了更快的处理大量事务。 
       但是随着web发展,很多情况都需要保存用户的状态。比如用户登录到一家购物网站,即使他跳转到该网站的其他页面后,也需要能继续保持登录状态。因此http1.1协议引入了Cookie技术,http1.1虽然仍是无状态的,但是通过Cookie实现了保持状态的功能。 
       Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去,服务器端发现客户端发送过来的Cookie后,会去检查究竟是哪个客户端发送来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。 
       2、HTTP非持久连接、持久连接 
       HTTP协议的初始版本中,每进行一次HTTP通讯就要断开一次TCP连接,下次通讯重新建立连接(非持久连接)。随着网络发展,同一个页面存在多个对象,在非持久连接下申请一个页面就需要大量的TCP连接和断开,增加网络传输负担,可能页面加载很慢。 
       为了解决上述问题,HTTP1.1想出了持久连接(keep-alive或HTTP Persistent Connections)的方法,所谓持久连接,就是服务器在发送响应后并不关闭TCP连接,在一段时间内扔保持这个连接,这样在一次连接中就可以有多次数据请求和响应。

由上面描述基本清楚了HTTP1.0和HTTP1.1的区别与联系: 
       他们是HTTP协议的不同版本; 
       HTTP1.0使用非持久连接,HTTP1.1实现持久连接; 
       HTTP1.1还允许客户端不用等待上一次请求结果返回就可以发出下一次请求,服务器端必须按照接收到的客户端请求的先后顺序依次返回响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。 
       HTTP1.0认为每台服务器都绑定一个唯一的IP地址,请求消息中的URL并没有传递主机名。随着虚拟主机技术的发展,一台物理服务器可以存在多个虚拟主机,他们共享一个IP地址HTTP1.1中增加了host请求头字段,实现了在一台web服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点。HTTP1.1的请求消息中如果没有Host头域会报400错误。 
       HTTP1.1还提供了身份认证、状态管理和Cache缓存等机制

下面是HTTP协议版本:

版本 产生时间 内容 发展现状
HTTP/0.9 1991年 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 没有作为正式的标准
HTTP/1.0 1996年 传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令 正式作为标准
HTTP/1.1 1997年 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 2015年前使用最广泛
HTTP/2.0 2015年 多路复用、服务器推送、头信息压缩、二进制协议等 逐渐覆盖市场

HTTP请求报文格式:分为请求行、请求头、请求包体 
       请求行:请求方法(空格)URL(空格)协议版本 
       请求头:头字段名称:值 
                      头字段名称:值 
                      ...... 
       请求包体:

HTTP响应报文格式:由状态行、响应头部、响应包体组成 
       状态行:协议版本(空格)状态码(空格)状态码描述 
       响应头部:头字段名称:值 
                         头字段名称:值 
                         ....... 
       响应包体:

状态码由三位数字组成,第一位表示响应的类型,常用状态码有如下五大类: 
       1xx:表示服务器已经接收了客户端请求,客户端可以继续发送请求; 
       2xx:表示服务器已经成功接收到请求并进行处理; 
       3xx:表示服务器要求客户端重定向; 
       4xx:表示客户端的请求有非法内容; 
       5xx:表示服务器未能正常处理客户端的请求而出现意外错误; 
       常用状态码描述: 
       200:请求成功 
       301: 
       302:能自动的向新的 URI 发送重复请求,必须跟用户确认是否该重发 
       303: 
       400:客户端请求有语法错误,服务器无法处理 
       401:表示请求未经授权,该状态码必须与WWW-Anthenticate报头域一起使用 
       403:服务器收到请求,但拒绝提供服务,通常会在响应正文给出不提供服务的原因,例如无权访问请求的文件 
       404:请求资源不存在 
       500:服务器发生不可预知的错误,无法完成客户端请求 
       501:服务器不支持请求的方法 
       503:服务器当前不可用,过段时间可能会回复正常 
       505:服务器不支持HTTP的版本

TCP和UDP的区别: 
       TCP是传输控制协议,提供的是面向连接的,可靠地字节流服务。实际数据传输之前服务器和客户端要进行三次握手,会话结束后结束连接。 
       UDP是用户数据报协议,是无连接的。因为无连接,而且没有超时重发机制,所以UDP传输速度很快。主要用于视频传输(但其实现在各大视频商都是用HTTP协议,而HTTP是基于TCP),实时视频。 
      TCP保证数据按序到达,提供流量控制和拥塞控制,在网络拥堵的时候会减慢发送字节数,是可靠的,而UDP不管网络是否拥堵,不可靠。 
      TCP是连接的,所以服务是一对一服务,而UDP可以1对1,也可以1对多(多播),也可以多对多。

原文地址:https://www.cnblogs.com/cx6872/p/11896686.html

时间: 2024-11-05 12:28:57

HTTP、HTTPS、HTTP1.0、HTTP1.1的相关文章

HTTP1.0、1.1、2.0的区别

首先,在了解他们之间区别之前,我们先简单看一下HTTP的工作过程   HTTP的访问其实是由两个阶段组成的.    http请求:http request    http响应:http response    一次http事务:请求<-->响应  当我们打开浏览器时,浏览器会向服务器端发送一个HTTP的请求,服务器收到请求以后,会根据用户发送的请求里面带有的命令来进行相应.也就意味着HTTP的通讯过程就是一去一回.一个请求一个响应.当然这一去一回前面还有三次握手,在三次握手之后才可以正常访问.

HTTP与HTTPS异同/HTTP1.0与HTTP1.1差别

HTTP状态码 分类 解释 描述 1XX 信息 服务器收到请求,需要请求者继续执行操作 2XX 成功 操作被成功接收并处理 3XX 重定向 需要进一步的操作以完成请求 4XX 客户端错误 请求包含语法错误或无法完成请求 5XX 服务器错误 服务器在处理请求的过程中发生了错误 常见的状态码 状态代码 状态消息 描述 200 成功 处理请求无误 301 永久移动 内容已移动到位置头中指明的主机上 400 错误请求 服务器不能理解请求 403 禁止 服务器无权访问所请求的文件 404 未发现 服务器不

初次开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、目前性能还不够好

继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-host测试,但是官方说运行环境的MONO版本至少需要3.4.1,我去年买了个表,至本文发布为止,你让我下地狱去找3.4.1吗,硬着头皮用3.4.0搞了一晚上,MAC一直停留在 httpapi.dll出错,Ubuntu Server 12.0.4 是不认其中的几个DLL包,具体哪几个也忘了,过段时间有了稳定版本再

Flume1.5.0的安装、部署、简单应用(含分布式、与hadoop2.2.0、hbase0.96的案例)

目录: 一.什么是Flume? 1)flume的特点 2)flume的可靠性 3)flume的可恢复性 4)flume 的 一些核心概念 二.flume的官方网站在哪里? 三.在哪里下载? 四.如何安装? 五.flume的案例 1)案例1:Avro 2)案例2:Spool 3)案例3:Exec 4)案例4:Syslogtcp 5)案例5:JSONHandler 6)案例6:Hadoop sink 7)案例7:File Roll Sink 8)案例8:Replicating Channel Sel

HTTP1.0和HTTP1.1以及HTTP2.0的区别

HTTP1.0和HTTP1.1区别 版本 HTTP1.0 HTTP1.1 连接方面 使用 非持久连接,即在非持久连接下,一个tcp连接只传输一个web对象.每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个对象,严重影响客户机和服务器的性能 默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象.在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗

HTTP1.0和HTTP1.1区别及http状态码

HTTP1.0和HTTP1.1的主要区别 1,HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象,: 2,HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接).在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象! HTTP目前三个版本:HTTP0.9.HTTP1.0.HTTP1.1. (1)HTTP0.9是最早的版本 ,它只定义了最基本的简单请求和简单回答:HTTP1.0较完

浅谈http1.0和http1.1(1.x)以及http-NG

http协议简介 http超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法.1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基.Ted Nelson组织协调万维网协会(World Wide Web Consortiu

http1.0与http1.1的区别

http1.0与http1.1的区别 1.http1.1提供身份认证(HTTP1.1提供一个基于口令的基本认证方式,) 2.http1.1提供永久性连接(即1.0使用非持久连接,一个tcp连接只传输一个web对象,服务器完成完请求后立即断开tcp连接,服务器不跟踪每个客户也记录过去的请求,显然,这就造成访问一个包含许多图像文件的网页文件的整个过程包含了多次请求和响应,每次请求和响应需要建立一个单独的连接.客户端每次建立和关闭建立都特别费时,而且会严重影响客户与服务器的性能.HTTP1.1采用持久

HTTP、HTTP1.0、HTTP1.1、HTTP2.0、HTTPS

一.HTTP HTTP(超文本传输协议,HyperText Transfer Protocol)是应用层的协议,目前在互联网中应用广泛. 它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的. HTTP遵循经典的客户端-服务端模型 ,客户端打开一个连接以发出请求,然后等待它收到服务器端响应. HTTP是 无状态协议,意味着服务器不会在两个请求之间保留任何数据(状态). 二.HTTP1.0 --构建可扩展性 HTTP原有的应用非常局限,浏览器和服务器迅速扩展使其用途更广: 版本