首页 > 编程知识 正文

https比http慢多少,网络中的http是指

时间:2023-05-05 00:29:15 阅读:169020 作者:1442

文章目录1. HTTP概要2. HTTP发展历史3. HTTP工作原理4. HTTP消息结构5. HTTP请求方法6. HTTP状态码7.https协议9 HTTPS协议工作原理10 HTTPS缺点11

1. HTTP配置文件HTTP协议是hypertexttransferprotocol (http://www.Sina.com/)的缩写,www ) www :万维网(www )服务器上的本地协议HTTP基于TCP/IP通信协议,传递数据(HTML文件、图像文件、查询结果等)。 HTTP是APP应用层协议。

超文本传输协议

APP应用层也称为APP应用实体,由几个特定的APP应用服务元素(SASE )和一个或多个公共APP应用服务元素(CASE )组成。 电子邮件传输协议SMTP、最终系统文件上传协议FTP、进行域名解析的DNS协议。 APP应用层协议分布在多个终端系统APP,一个终端系统APP与另一个终端系统APP交换信息分组,位于APP应用层的信息分组被称为消息。应用层

超文本传输协议可以进行字符分割。 超文本(Hypertext )、传输(Transfer )、协议(Protocol )存在以下关系。 根据范围的大小)协议传输超文本

面试官问:什么是超文本传输协议?

在internet初期,您输入的信息只能存储在本地,无法与其他计算机进行交互。 我们存储的信息通常以文本或简单文字的形式存在,但随着互联网的高速发展,两台计算机之间可以传输数据后,人们不满足于只能在两台计算机之间传输文字,图像、图像这个意义被放大了的文本称为超文本(Hypertext )。超文本

两台计算机之间形成互连关系并进行通信,存储的超文本被解析为二进制数据包。 传输向量(同轴电缆、电话线、光缆等)负责将二进制数据包从计算机终端传输到其他终端。传输

协议、网络协议的简称,网络协议是通信计算机双方必须共同遵守的一组约定。 如何建立连接、如何识别彼此等。 只有遵守这个约定,计算机之间才能相互通信交流。 那三个要素是语法、语义和时间顺序。 为了使数据在网络上从源到达目的,网络通信的参与者必须遵循同样的规则。 该规则称为协议(protocol ),最终表现为在网络上传输的数据包的格式。 协议往往分为几个级别来定义。 层次的定义是为了防止对某个级别协议的更改影响其他级别的协议。 2. HTTP发展历史版本发生时间内容发展现状HTTP/0.91991年规定了客户端与服务器之间不参与数据包传输的通信格式,HTTP/1.01996年的传输内容格式仅为GET请求的正式标准标准HTTP/1.11997年持久连接、长连接、带宽节约、主机域、管道机制、块传输代码2015年前最广泛的HTTP/22015年多路复用、服务器推送Web服务器根据接收到的请求向客户端发送响应消息。 HTTP的默认端口号为80,也可以更改为8080或其他端口。协议

平时我们叫它“URL”其实是指URL。 在WWW上,每个信息资源都有统一的且在网上是唯一的地址。 其地址称为统一资源定位符(URL ),它是万维网统一资源的定位标记,是网络地址。 URL由资源类型、存储资源的主机域名和资源文件名三部分组成。 可以认为由协议、主机、端口和路径四部分组成。

URL

(雕像)?等文字,根据url作为特殊的意思来理解。因此,这些文字不能随便出现。

例如,如果某个参数需要这些特殊字符,则必须首先转义这些特殊字符。 转义的规则是以下:

将需要转码的字符转换为十六进制,从右向左取4位,每2位制作1位,在前面加上%编码为%XY格式。 urldecode是urlencode的逆过程。 urlencode工具链接- link " "-urlencode-"。

urlencode和urldecode

HTTP没有连接。 无连接意味着限制每个连接只处理一个请求。 服务器处理客户请求并收到客户响应后,断开连接。 采用这种方式可以节约传输时间。 HTTP是媒体独立的。 这意味着,只要知道客户端和服务器如何处理,任何类型的数据都可以通过HTTP发送。 指定客户端和服务器使用适当的MIME-type内容类型。 无HTTP

状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 4. HTTP消息结构

请求

请求由四个部分组成,分别是:请求行、请求报头、空行和正文。

HTTP 的请求标头分为四种: 通用标头、请求标头、响应标头 和 实体标头 着重讲解通用标头:

通用标头:

通用标头主要有三个,分别是 Date、Cache-Control 和 Connection

Date:

Date 是一个通用标头,它可以出现在请求标头和响应标头中,它的基本表示如下Date: Wed, 21 Oct 2015 07:28:00 GMT

Cache-Control:

Cache-Control 是一个通用标头,他可以出现在请求标头和响应标头中,Cache-Control 的种类比较多,虽然说这是一个通用标头,但是又一些特性是请求标头具有的,有一些是响应标头才有的。主要大类有 可缓存性、阈值性、 重新验证并重新加载 和其他特性。可缓存性是唯一响应标头才具有的特性,我们会在响应标头中详述。阈值性,它的原英文是 Expiration。
max-age: 资源被认为仍然有效的最长时间,与 Expires 不同,这个请求是相对于 request标头的时间,而 Expires 是相对于响应标头。(请求标头)
s-maxage: 重写了 max-age 和 Expires 请求头,仅仅适用于共享缓存,被私有缓存所忽略(这块不理解,看完响应头的 Cache-Control 再进行理解)(请求标头)
max-stale:表示客户端将接受的最大响应时间,以秒为单位。(响应标头)
min-fresh: 表示客户端希望响应在指定的最小时间内有效。(响应标头)

Connection :

Connection 决定当前事务(一次三次握手和四次挥手)完成后,是否会关闭网络连接。Connection 有两种。

持久性连接,即一次事务完成后不关闭网络连接

Connection: keep-alive

非持久性连接,即一次事务完成后关闭网络连接

Connection: close

响应

响应四个部分组成,分别是:状态行、相应报头、空行和响应正文。

实例

部分标头解释
Keep-Alive:

上面我们提到,HTTP 报文标头会分为四种,这其实是按着上下文来分类的还有一种分类是根据代理进行分类,根据代理会分为端到端头 和 逐跳标头。
而 Keep-Alive 表示的是 Connection 非持续连接的存活时间,如下Connection: Keep-AliveKeep-Alive: timeout=5, max=997Keep-Alive 有两个参数,它们是以逗号分隔的参数列表,每个参数由一个标识符和一个由等号 = 分隔的值组成。timeout:指示空闲连接必须保持打开状态的最短时间(以秒为单位)。max:指示在关闭连接之前可以在此连接上发送的最大请求数。上述 HTTP 代码的意思就是限制最大的超时时间是 5s 和 最大的连接请求是 997 个。

Server:

服务器标头包含有关原始服务器用来处理请求的软件的信息。应该避免使用过于冗长和详细的 Server 值,因为它们可能会泄露内部实施细节,这可能会使攻击者容易地发现并利用已知的安全漏洞。例如下面这种写法Server: Apache/2.4.1 (Unix)

下面实例是一点典型的使用GET来传递数据的实例:

客户端请求:

GET /hello.txt HTTP/1.1User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3Host: www.example.comAccept-Language: en, mi

服务端响应:

HTTP/1.1 200 OKDate: Mon, 27 Jul 2009 12:28:53 GMTServer: ApacheLast-Modified: Wed, 22 Jul 2009 19:15:56 GMTETag: "34aa387-d-1568eb00"Accept-Ranges: bytesContent-Length: 51Vary: Accept-EncodingContent-Type: text/plain 5. HTTP请求方法 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
http请求方法对照表->link
6. HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。

下面是常见的HTTP状态码:

200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误

HTTP状态码分类:

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型: 分类分类描述1**信息,服务器收到请求,需要请求者继续执行操作2**成功,操作被成功接收并处理3**重定向,需要进一步的操作以完成请求4**客户端错误,请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误

HTTP状态码列表->link

以下是部分展示:
7. HTTP 的优点和缺点

HTTP 的优点
简单灵活易扩展:

HTTP 最重要也是最突出的优点是 简单、灵活、易于扩展。HTTP 的协议比较简单,它的主要组成就是 header + body,头部信息也是简单的文本格式,而且HTTP 的请求报文根据英文也能猜出来个大概的意思,降低学习门槛,能够让更多的人研究和开发 HTTP 应用。所以,在简单的基础上,HTTP 协议又多了灵活 和 易扩展 的优点。HTTP 协议里的请求方法、URI、状态码、原因短语、头字段等每一个核心组成要素都没有被制定死,允许开发者任意定制、扩充或解释,给予了浏览器和服务器最大程度的信任和自由。

应用广泛、环境成熟:

因为过于简单,普及,因此应用很广泛。因为 HTTP 协议本身不属于一种语言,它并不限定某种编程语言或者操作系统,所以天然具有跨语言、跨平台的优越性。而且,因为本身的简单特性很容易实现,所以几乎所有的编程语言都有 HTTP 调用库和外围的开发测试工具。随着移动互联网的发展, HTTP 的触角已经延伸到了世界的每一个角落,从简单的 Web 页面到复杂的 JSON、XML 数据,从台式机上的浏览器到手机上的各种 APP、新闻、论坛、购物、手机游戏,你很难找到一个没有使用 HTTP 的地方。

无状态:

无状态其实既是优点又是缺点。因为服务器没有记忆能力,所以就不需要额外的资源来记录状态信息,不仅实现上会简单一些,而且还能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。

HTTP 缺点
无状态:

既然服务器没有记忆能力,它就无法支持需要连续多个步骤的事务操作。每次都得问一遍身份信息,不仅麻烦,而且还增加了不必要的数据传输量。由此出现了 Cookie 技术。

明文:

HTTP 协议里还有一把优缺点一体的双刃剑,就是明文传输。明文意思就是协议里的报文(准确地说是 header 部分)不使用二进制数据,而是用简单可阅读的文本形式。对比 TCP、UDP 这样的二进制协议,它的优点显而易见,不需要借助任何外部工具,用浏览器、Wireshark 或者 tcpdump 抓包后,直接用肉眼就可以很容易地查看或者修改,为我们的开发调试工作带来极大的便利。当然缺点也是显而易见的,就是不安全,可以被监听和被窥探。因为无法判断通信双方的身份,不能判断报文是否被更改过。

性能:

HTTP 的性能不算差,但不完全适应现在的互联网,还有很大的提升空间。 8. HTTPS协议 HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。 9 HTTPS协议的工作原理 我们都知道 HTTPS 能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用 HTTPS 协议。
客户端在使用 HTTPS 方式与 Web 服务器通信时有以下几个步骤,如图所示。

客户使用 https 的 URL 访问 Web 服务器,要求与 Web 服务器建立 SSL 连接。

Web 服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

客户端的浏览器与 Web 服务器开始协商 SSL 连接的安全等级,也就是信息加密的等级。

客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

Web 服务器利用自己的私钥解密出会话密钥。

Web 服务器利用会话密钥加密与客户端之间的通信。

基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护

通过抓包可以看到数据不是明文传输,而且HTTPS有如下特点:

内容加密:采用混合加密技术,中间者无法直接查看明文内容

验证身份:通过证书认证客户端访问的是自己的服务器

保护数据完整性:防止传输的内容被中间人冒充或者篡改

混合加密:结合非对称加密和对称加密技术。客户端使用对称加密生成密钥对传输数据进行加密,然后使用非对称加密的公钥再对秘钥进行加密,所以网络上传输的数据是被秘钥加密的密文和用公钥加密后的秘密秘钥,因此即使被黑客截取,由于没有私钥,无法获取到加密明文的秘钥,便无法获取到明文数据。

数字摘要:通过单向hash函数对原文进行哈希,将需加密的明文“摘要”成一串固定长度(如128bit)的密文,不同的明文摘要成的密文其结果总是不相同,同样的明文其摘要必定一致,并且即使知道了摘要也不能反推出明文。

数字签名技术:数字签名建立在公钥加密体制基础上,是公钥加密技术的另一类应用。它把公钥加密技术和数字摘要结合起来,形成了实用的数字签名技术。

10 HTTPS缺点

HTTPS 有很大的优势,但其相对来说,还是存在不足之处的:

HTTPS 协议握手阶段比较费时,会使页面的加载时间延长近 50%,增加 10% 到 20% 的耗电;HTTPS 连接缓存不如 HTTP 高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;SSL 证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名,IPv4 资源不可能支撑这个消耗。HTTPS 协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL 证书的信用链体系并不安全,特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。 11 HTTP和HTTPS的区别

面试官问:HTTP和HTTPS的区别?

http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 SSL加密传输协议。HTTP协议的默认端口是80,HTTPS的默认端口是443http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。