概述

Web浏览器、服务器和相关的Web应用程序都是通过HTTP相互通信的。HTTP是现代全球因特网中使用的公共语言。

web客户端和服务器

web客户端:最常见的就是web浏览器

web服务器:Web服务器所使用的是HTTP协议,因此经常会被称为HTTP服务器。 这些HTTP服务器存储了因特网中的数据,如果
HTTP客户端发出请求的话,它们会提供数据。客户端向服务器发送HTTP请求,服务器会在HTTP响应中回送所请求的数据

实际的web服务器会做些什么

步骤 任务 介绍
1 建立连接 接受一个客户端连接,或者如果不希望与这个客户端建立连接,就 将其关闭
步骤:处理新连接,客户端主机名识别,通过ident确定客户端用户
2 接收请求 从网络中读取一条 HTTP请求报文
3 处理请求 对请求报文进行解释,并采取行动
4 访问资源 访问报文中指定的资源
5 构建响应 创建带有正确首部的 HTIP 响应报文
包括:响应实体,MIME类型,重定向
6 发送响应 将响应回送给客户端
7 记录事务处理过程 将与已完成事务有关的内容记录在 一个日志文件中。

资源

  • Web 服务器是 Web 资源( Web resource) 的宿主。 Web 资源是 Web 内容的源头。
  • 最简单的 Web 资源就是 Web 服务器文件系统中的静态文件。
  • 资源不一定是静态文件。 资源还可以是根据需要生成内容的软件程序。这些动态内容资源可以根据你的身份、所请求的信息或每天的不同时段来产生内容。

媒体类型

  • 因特网上有数千种不同的数据类型, HTTP 仔细地给每种要通过 Web 传输的对象都打上了名为 MIME 类型( MIME type) 的数据格式标签。
  • Web 服务器会为所有 HTTP 对象数据附加一个 MIME 类型
  • 当 Web浏览器从服务器中取回一个对象时, 会去查看相关的 MIME 类型, 看看它是否知道应该如何处理这个对象。
  • MIME 类型是一种文本标记, 表示一种主要的对象类型和一个特定的子类型, 中间由一条斜杠来分隔。

URI

服务器资源名被称为统一资源标识符( Uniform Resource Identifier, URI)。

URI 有两种形式, 分别称为 URL 和 URN。

URL

统一资源定位符( URL) 是资源标识符最常见的形式。

URL 描述了一台特定服务器上某资源的特定位置。 它们可以明确说明如何从一个精确、 固定的位置获取资源。

大部分 URL 都遵循一种标准格式, 这种格式包含三个部分。

  • URL 的第一部分被称为方案( scheme), 说明了访问资源所使用的协议类型。 这部分通常就是 HTTP 协议(http://)。
  • 第二部分给出了服务器的因特网地址( 比如, www.joes-hardware.com)。
  • 其余部分指定了 Web 服务器上的某个资源( 比如, /specials/saw-blade.gif)。

URL语法

  • URL提供了一种定位因特网上任意资源的手段,但是这些资源可以通过各种不同的方案(HTTP,FTP,SMTP)来访问,因此URL语法会随着方案的不同而有所不同。
  • 大多数URL方案的URL语法都建立在这个由9部分构成的通用格式上:://:@:/;?#
  • URL最重要的三个部分是:方案(scheme),主机(host),路径(path)
组件 描述 默认值
方案(scheme) 访问服务器以获取资源时要使用的协议
用户(user) 一些方案访问资源时需要的用户名 匿名
密码(password) 用户名后面可能要包含密码,中间由冒号分隔 <E-mail地址>
主机(host) 资源宿主服务器的主机名或点分IP地址
端口(port) 资源宿主服务器正在监听的端口号,很多方案都有默认端口号(HTTP默认端口号为80) 每个方案特有
路径 服务器上资源的本地名,由一个”/”将其与前面的URL组件分隔开来.路径组件的语法与服务器和方案有关
参数 一些方案会用这个组件指定输入参数. 参数为名/值对. URL中可以包含多个参数字段,它们相互以及与路径的其余部分之间用分号(;)分隔
查询 一些方案会用这个组件传递参数以激活应用程序.查询组件的内容没有通用格式.化用符号”?”将其与URL的其余部分分隔开来
片段 一小片或一部分资源的名字.引用对象时,不会将frag字段传送给服务器这个字段是在客户端内部使用的.通过字符”#”将其与URL其余部分分隔开来

URN

  • URI 的第二种形式就是统一资源名( URN)。 URN 是作为特定内容的唯一名称使用的, 与目前的资源所在地无关。
  • 使用这些与位置无关的 URN, 就可以将资源四处搬移。 通过 URN, 还可以用同一个名字通过多种网络访问协议来访问资源。
  • URN 仍然处于试验阶段, 还未大范围使用。

事务

一个 HTTP 事务由一条( 从客户端发往服务器的) 请求命令和一个( 从服务器发回客户端的) 响应结果组成。

这种通信是通过名为 HTTP 报文( HTTP message)的格式化数据块进行的

方法

HTTP 支持几种不同的请求命令, 这些命令被称为 HTTP 方法( HTTP method)。

方法会告诉服务器要执行什么动作( 获取一个 Web 页面、 运行一个网关程序、 删除一个文件等)。

http方法 描述
GET 从服务器向客户端发送命名资源
PUT 将来自客户端的数据存储到一个命名的服务器资源中去
DELETE 从服务器中删除命名资源
POST 将客户端数据发送到一个服务器网关应用程序
HEAD 仅发送命名资源响应中的 HTTP 首部

状态码

  • 每条 HTTP 响应报文返回时都会携带一个状态码。
  • 状态码是一个三位数字的代码,告知客户端请求是否成功, 或者是否需要采取其他动作。
  • 伴随着每个数字状态码, HTTP 还会发送一条解释性的“ 原因短语” 文本,包含文本短语主要是为了进行描述, 所有的处理过程使用的都是数字码。

几个常见的状态码

http状态码 描述
200 OK。 文档正确返回
302 Redirect( 重定向)。 到其他地方去获取资源
404 Not Found( 没找到)。 无法找到这个资源

Web页面中可以包含多个对象

应用程序完成一项任务时通常会发布多个 HTTP 事务。

一个“ Web 页面” 通常并不是单个资源, 而是一组资源的集合

报文

HTTP报文是在HTTP应用程序之间发送的数据快

HTTP 报文是由一行一行的简单字符串组成的。 HTTP 报文都是纯文本, 不是二进制代码, 所以人们可以很方便地对其进行读写 。

从 Web 客户端发往 Web 服务器的 HTTP 报文称为请求报文( request message)。从服务器发往客户端的报文称为响应报文( response message),

HTTP 报文包括以下三个部分:

  • 报文的第一行就是起始行, 在请求报文中用来说明要做些什么, 在响应报文中说明出现了什么情况。
  • 起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号来分隔。首部以一个空行结束。
  • 空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括要发送给Web服务器的数据;响应主体中装载了返回给客户端的数据。
    起始行和首部都是文本形式且都是结构化的, 而主体则不同, 主体中可以包含任意的二进制数据。 当然, 主体中也可以包含文本。

方法

安全方法

GET方法和HEAD方法都被认为是安全的,这就意味着使用GET和HEAD的HTTP请求都不会产生什么动作。

不产生动作,在这里意味着HTTP请求不会在服务器产生什么结果。

GET

GET是最常用的方法。通常用于请求服务器发送某个资源。

HEAD

  • HEAD方法与GET方法的行为很类似,但服务器在响应中只返回首部。不会返回实体的主体部分。
  • 这允许客户端在未获取实际资源的情况下,对资源首部进行检查。
  • 通过查看响应中的状态码,看看某个对象是否存在。
  • 通过查看首部,测试资源是否被修改了。

PUT

  • 与GET从服务器读取文件相反,PUT方法向服务器写入文档。

POST

POST方法起初是用来向服务器输入数据的。实际上,通常会用它来支持HTML的表单。

TRACE

客户端发送一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的HTTP请求。

TRACE方法允许客户端在最终将请求发送给服务器时,看看它变成了什么样子。

OPTIONS

OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。

通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。

DELETE

Delete方法就是通过http请求删除指定的URL上的资源.但是,客户端应用程序无法保证删除操作一定会被执行。

部分关键词解释

请求报文

关键词 解释
ACCEPT 告诉服务器能够发送哪些媒体类型。
ACCEPT-Encoding 告诉服务器能够发送哪些编码法式。
ACCEPT-Charset 告诉服务器能够发送哪些字符集
ACCEPT-Language 告诉服务器能够发送哪些语言
Cache-Control 用于随报文传送缓存指示
Connection 允许客户端和服务器指定与请求/响应链接有关的选项
Cookie 客户端用它像一个服务器传送一个令牌
Host 给出了接受请求的服务器的主机名和端口号
User-Agent 将发起请求的应用程序名称告知服务器

响应报文

关键词 解释
Age 从最初创建开始响应持续时间
Content-Encoding 对主体执行任意的编码方式
Date 提供日期和时间标志,说明报文是什么时间创建的
Expires 实体不在有效,要从原始的源端再次获取此实体的日期和时间
Server 服务器应用程序软件的名称和版本
Transfer-Encoding 告知接受端为了保证报文的可靠传输,对报文采用了什么编码方式
Vary 服务器查看的其他首部列表,可能会使响应发生变化;也就是说,这是一个首部列表,服务器会根据这些首部的内容挑出最合适的资源版本发送给客户端
Via 显示报文经过的中间的节点(代理,网关)

web的结构组件

代理

位于客户端和服务器之间的 HTTP 中间实体。

缓存

HTTP 的仓库, 使常用页面的副本可以保存在离客户端更近的地方。

缓存介绍

Web缓存可以自动保存常见文档副本的HTTP设备。当Web请求抵达缓存时,如果本地有“已缓存的”副本,就从本地存储设备而不是原始服务器中提取这个文档。

使用缓存的优点

  • 减少了冗余的数据传输
  • 缓解了网络的瓶颈的问题(不许更多的的带宽就能更快加载)
  • 降低了对原始服务器的要求
  • 降低了距离时延

如何做到

  • 多名用户访问原始服务器页面时,服务器会多次传输同一份文档,相同的字节会在网络中一遍遍地传输。有了缓存,就可以保留第一条服务器响应的副本,后继请求就可以由缓存的副本来应对了。
  • 因为缓存放在了离计算机较近的地方,客户端可以很快得到一份副本

命中和未命中

缓存命中(cache hit):可以用已有的副本为某些到达缓存的请求提供服务。

缓存未命中(cache miss):没有副本可用,而被转发到原始服务器。

再验证

原始服务器的内容可能会发生变化,缓存要不时的对其进行检测,看看保存的副本是否为最新的。“新鲜度检测”被称为HTTP再验证。
为了有效的验证,HTTP定义了一些特殊的请求,不要用从服务器获取整个对象,就可以快速检测出内容是否为最新。
缓存再验证时,会向服务器发送一个小的再验证请求。若缓存仍然有效,副本就会被标志成是新鲜的,并将副本提供给客户端,这称为再验证命中。

通常会用If-Modified-Since首部来验证,把它添加到GET请求中去,就可以告诉服务器。下面数响应报文中可能出现的三种情况

  1. 再验证命中 如果服务器对象未被修改,服务器会向客户端发送一个小的HTTP 304 Not Modified响应
  2. 再验证未命中 如果服务器对象与已缓存副本不同,服务器向客户端发送一条普通的,带有完整内容的HTTP 200 OK响应
  3. 对象被删除 如果服务器对象已经被删除了,服务器就会送一个 404 Not Found响应,缓存也会将其副本删除

区分命中和未命中的情况

HTTP没有为用户提供一种手段来区分响应是缓存命中的,还是访问原始服务器得到的。这两种情况返回的都是200 OK

客户端有一种方法能判断响应是否来自缓存,就是使用Date首部。将响应中Date首部的值与当前时间进行比较

如果响应中的日期值比较早,客户端通常就可以认为是来自缓存的;反之,则认为是来自原始服务器中的。

两种缓存

缓存 定义 优点
私有缓存 Web浏览器中有内建的私有缓存,大多数浏览器会将常用文档缓存在你个人电脑的磁盘和内存中,并且允许用户去配置缓存的大小和各种设置。 私有缓存不需要很大的动力或存储空间。
共有代理缓存 共有代理缓存是特殊的共享代理服务器,被称为缓存代理服务器(caching proxy server),或称为代理缓存(proxy cache)。代理缓存会从本地缓存中提取文档,或者代表用户与服务器进行联系 公有缓存会接受来自多个用户的访问,所以通过他可以更好地减少冗余流量。

缓存的处理步骤
对一条HTTP GET报文的基本缓存处理过程包括7个步骤

序号 步骤 说明
1 接受 缓存从网络中读取抵达的请求报文。
2 解析 缓存对报文进行解析,提取出URL和各种首部。
3 查询 缓存查看是否有本地副本可用,如果没有,就获取一份副本并保存在本地。
4 新鲜度检测 缓存查看已缓存副本是否足够新鲜,如果不是,就询问服务器是否有任何更新。
5 创建响应 缓存会用新的首部和已缓存的主体来构建一条响应报文。
6 发送 缓存通过网络将响应发回给客户端。
7 日志 缓存可选地创建一个日志文件条目来描述这个事务。

文档过期

通过特殊的HTTP Cache-Control和Expires首部,HTTP让原始服务器向每个文档附加一个“过期日期”。
– Expries:指定一个绝对过期日期。如果过期日期已经过了,就说明文档不再新鲜了。
– Cache-Control:max-age:max-age值定义了文档的最大使用期——从第一次生成文档到文档不再新鲜,无法使用为止,最大的合法生存时间(以秒为单位)。

网关

连接其他应用程序的特殊 Web 服务器。

网关( gateway) 是一种特殊的服务器, 作为其他服务器的中间实体使用。

隧道

对 HTTP 通信报文进行盲转发的特殊代理。

Agent 代理

发起自动 HTTP 请求的半智能 Web 客户端。

Cookie

Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

Cookie是当前识别用户,实现持久会话的最好方式。

cookie的类型

可以笼统地将cookie分为会话cookie和持久cookie

会话Cookie与持久Cookie的区别是它们的过期时间

  • 会话cookie是一种临时cookie,它记录了用户访问站点时的偏好和设置。不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。会话cookie一般不保存在硬盘上而是保存在内存里。
  • 持久cookie通常来维护某个用户会周期性访问的站点的配置文件或登录名。设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

cookie是如何工作的

用户首次访问web站点时,web服务器对用户一无所知。web服务器希望这个用户会再次回来,会给这个用户“拍上”一个独有的cookie。

cookie中包含了一个由名字=值(name=value)这样的信息构成的任意列表,并通过set-cookie或set-cookie2 HTTP响应(扩展)首部将其贴到用户身上去。

cookie罐:客户端的状态

Cookie的基本思想就是让浏览器记住服务器的信息,每次访问服务器时都将这些信息提供给它。

因为浏览器要负责存储cookie信息,所以此系统被称为客户端侧状态。这个cookie规范的正式名称为HTTP状态管理机制。

不同站点使用不同的Cookie

  • Cookie的域属性 控制哪些站点可以看到这个Cookie
  • Cookie的路径属性 允许用户将cookie与部分web站点关联起来,可通过PATH属性实现。在这个属性列出的URL路径前缀下所有Cookie都是有效的。

cookie成分

cookie规范

cookies版本0(Netscape)

属性

set_cookie属性 描述
NAME=VALUE 强制的。web服务器可以创建任意的NAME=VALUE关联,在后继对站点的访问中会将其送回给web服务器。
Expires 可选的。此属性用来给Cookies设置一个期限,在期限内只要打开网页就可以调用被保存的Cookies,如果过了此期限Cookies就自动被删除
Domain 可选的。这个属性定义了Cookies传送数据的唯一性
Path 可选的。定义了Cookies只发给指定的路径请求,如果Path属性没有被设置,则使用应用软件的缺省路径
Secure 可选的。指定Cookies能否被用户读取

cookies版本1(RFC 2965)

属性

set_cookie2属性 描述
NAME=VALUE 强制的。web服务器可以创建任意的NAME=VALUE关联,在后继对站点的访问中会将其送回给web服务器。
Version 强制的。版本号
Comment 可选的。服务器准备如何使用这个cookie
CommentURL 可选的。提供了一个URL指针,指向详细描述了cookie目的及策略的文档。
Discard 可选的。客户端程序中止时,提示客户端放弃这个cookie
Domain 可选的。这个属性定义了Cookies传送数据的唯一性
Max-age 可选的。设置以秒为单位的cookie生存期。
Path 可选的。定义了Cookies只发给指定的路径请求,如果Path属性没有被设置,则使用应用软件的缺省路径
Port 可选的。可单独做关键字使用,也可包含一个由逗号分割的、可以应用cookie的端口列表
Secure 可选的。如包含此属性,只有HTTP使用SSL安全连接时才能发送cookie

cookie与会话跟踪

可以用cookie在用户与某个web站点进行多项事务处理时对用户进行跟踪。

cookie与缓存

缓存那些与cookie事务有关的文档时要特别小心。你不会希望给用户分配一个过去某些用户用过的cookie,或者更糟糕的是,向一个用户展示其他人私有文档的内容。

cookie与缓存的规则并没有很好的建立起来。下面是处理缓存时的一些指导规则:

  • 如果无法缓存文档,要将其标示出来。
  • 缓存set-cookie首部时要小心。
  • 小心处理带有cookie首部的请求。

cookie、安全性和隐私

cookie是可以禁止的,而且可以通过日志分析或其他方式来实现大部分跟踪记录,所以cookie自身并不是很大的安全隐患。

实际上,可以提供一个标准的审查方法在远程数据库中保存个人信息,并将匿名cookie作为键值,来降低客户端到服务器的敏感数据传送频率。

8.编码

HTTP应用程序有时在发送之前需要对内容进行编码。服务器还可以把内容搅乱或加密,以此来防止未经授权的第三方看到文档的内容。

内容编码过程

  • 网站服务器生成原始响应报文,其中有原始的Content-Type和Content-Length首部
  • 内容编码服务器(也可能就是原始的服务器或下行的代理)创建编码后的报文。编码后的报文有同样的Content-Type,但Content-Length可能不同(例如主体被压缩)。内容编码服务器在编码后的报文中增加Content-Encoding首部,这样接收的应用程序就可以进行解码了
  • 接收程序得到编码后的报文,进行解码,获得原始报文

内容编码类型

内容编码代号

Content-Encoding值 描述
gzip 表明实体采用GNU zip编码
compress 表明实体采用Unix的文件压缩程序
deflate 表明实体是用zlib的格式压缩的
identity 表明没有对实体进行编码。当没有Content-Encoding首部时,就默认为这种情况

Accept-Encoding首部

浏览器发给服务器,声明浏览器支持的编码类型

附录:HTTP 状态码

状态码分类

总体范围 已定义范围 类别
100-199 100-101 信息
200-299 200-206 成功
300-399 300-305 重定向
400-499 400-415 客户端错误
500-599 500-505 服务器错误

状态码

状态码 原因短语 描述
100 Continue( 继续) 收到了请求的起始部分, 客户端应该继续请求
101 Switching Protocols( 切换协议) 服务器正根据客户端的指示将协议切换成 Update首部列出的协议
200 OK 服务器已成功处理请求
201 Created( 已创建) 对那些要服务器创建对象的请求来说, 资源已创建完毕
202 Accepted( 已接受) 请求已接受, 但服务器尚未处理
203 Non-Authoritative Information( 非权威信息) 服务器已将事务成功处理, 只是实体首部包含的信息不是来自原始服务器, 而是来自资源的副本
204 No Content( 没有内容) 响应报文包含一些首部和一个状态行, 但不包含实体的主体内容
205 Reset Content( 重置内容) 另一个主要用于浏览器的代码。 意思是浏览器应该重置当前页面上所有的 HTML 表单
206 Partial Content( 部分内容) 部分请求成功
300 Multiple Choices( 多项选择) 客户端请求了实际指向多个资源的 URL。 这个代码是和一个选项列表一起返回的, 然后用户就可以选择他希望使用的选项了
301 Moved Permanently( 永久移除) 请求的 URL 已移走。 响应中应该包含一个 LocationURL, 说明资源现在所处的位置
302 Found( 已找到) 与状态码 301 类似, 但这里的移除是临时的。 客户端应该用 Location 首部给出的 URL 对资源进行临时定位
303 See Other( 参见其他) 告诉客户端应该用另一个 URL 获取资源。 这个新的URL 位于响应报文的 Location 首部
304 Not Modified( 未修改) 客户端可以通过它们所包含的请求首部发起条件请求。 这个代码说明资源未发生过变化
305 Use Proxy( 使用代理) 必须通过代理访问资源, 代理的位置是在 Location首部中给出的
307 Temporary Redirect( 临时重定向) 和状态码 301 类似。 但客户端应该用 Location 首部给出的 URL 对资源进行临时定位
400 Bad request( 坏请求) 告诉客户端它发送了一条异常请求
401 Unauthorized( 未授权) 与适当的首部一起返回, 在客户端获得资源访问权之前, 请它进行身份认证
402 Payment Required( 要求付款) 当前此状态码并未使用, 是为未来使用预留的
403 Forbidden( 禁止) 服务器拒绝了请求
404 Not Found( 未找到) 服务器无法找到所请求的 URL
405 Method Not Allowed( 不允许使用的方法) 请求中有一个所请求的 URI 不支持的方法。 响应中应该包含一个 Allow 首部, 以告知客户端所请求的资源支持使用哪些方法
406 Not Acceptable( 无法接受) 客户端可以指定一些参数来说明希望接受哪些类型的实体。 服务器没有资源与客户端可接受的 URL 相匹配时可使用此代码
407 Proxy Authentication Required( 要求进行代理认证) 和状态码 401 类似, 但用于需要进行资源认证的代理服务器
408 Request Timeout( 请求超时) 如果客户端完成其请求时花费的时间太长, 服务器可以回送这个状态码并关闭连接
409 Conflict( 冲突) 发出的请求在资源上造成了一些冲突
410 Gone( 消失了) 除了服务器曾持有这些资源之外, 与状态码 404 类似
411 Length Required( 要求长度指示) 服务器要求在请求报文中包含 Content-Length首部时会使用这个代码。发起的请求中 若没有Content-Length 首部, 服务器是不会接受此资源请求的
412 Precondition Failed( 先决条件失败) 如果客户端发起了一个条件请求, 如果服务器无法满足其中的某个条件, 就返回这个响应码
413 Request Entity Too Large( 请求实体太大) 客户端发送的实体主体部分比服务器能够或者希望处理的要大
414 Request URI Too Long(请 求 URI太长) 客户端发送的请求所携带的请求 URL 超过了服务器能够或者希望处理的长度
415 Unsupported Media Type( 不支持的媒体类型) 服务器无法理解或不支持客户端所发送的实体的内容类型
416 Requested Range Not Satisfiable( 所请求的范围未得到满足) 请求报文请求的是某范围内的指定资源, 但那个范围无效, 或者未得到满足
417 Expectation Failed( 无法满足期望) 请求的 Expect 首部包含了一个预期内容, 但服务器无法满足
500 Internal Server Error( 内 部 服 务 器错误) 服务器遇到了一个错误, 使其无法为请求提供服务
501 Not Implemented( 未实现) 服务器无法满足客户端请求的某个功能
502 Bad Gateway( 网关故障) 作为代理或网关使用的服务器遇到了来自响应链中上游的无效响应
503 Service Unavailable( 未提供此服务) 服务器目前无法为请求提供服务, 但过一段时间就可以恢复服务
504 Gateway Timeout( 网关超时) 与状态码 408 类似, 但是响应来自网关或代理, 此网关或代理在等待另一台服务器的响应时出现了超时
505 HTTP Version Not Supported( 不支持的 HTTP 版本) 服务器收到的请求是以它不支持或不愿支持的协议版本表示的

附录:HTTPS

  • HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
  • 即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
  • 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。
  • 现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

作用

  • 建立一个信息安全通道,来保证数据传输的安全
  • 确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询

HTTPS和HTTP的区别

  • https协议需要到ca申请证书,一般免费证书很少,需要交费
  • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

解决问题

  • 信任主机的问题
  • 通讯过程中的数据的泄密和被篡改
分类: 后端

发表评论

电子邮件地址不会被公开。 必填项已用*标注