[CS169A-0]SaaS应用架构& 无痕浏览(incognito)和关闭Cookie的区别

  • 什么是SaaS?
  • SaaS如何工作?
  • The Web’s Client–Server Architecture
  • SaaS Communication Uses HTTP Routes
  • 但是很多时候我们并用不到IP,这是为什么呢?
  • IP不够,PORT来凑
  • HTTP
  • Cookie
  • 无痕浏览(incognito)和关闭Cookie的区别



这学期选了CS169A这门课,做了一些笔记,由于有学习任务,而我的笔记又是英文的,所以有些地方我才用了google翻译,在确认通顺以后才使用,并加了一些说明

什么是SaaS?

SaaS是Software as a Service的简称。区别于传统的Software as a Product。在软件硬件的更新与开发者和使用者的体验上都有优越性

SaaS如何工作?

SaaS遵循server-client(服务器-客户端)方式。即client给sever发出request,server给许多的client发出response。交互过程中遵循HTTP协议。实际上,HTTP是所有Web的交互协议。
随着时间的推移,Web 从一组静态资源转变为一组可以通过 Web 浏览器或其他 SaaS 应用程序远程访问的程序(服务)。 这种向面向服务架构的转变为微服务的爆炸式增长奠定了基础。

The Web’s Client–Server Architecture

P2P 架构:点对点体系结构(P2P 体系结构)是一种常用的计算机网络体系结构,其中每个工作站或节点具有相同的功能和职责。 它通常与经典的客户端/服务器架构进行比较和对比,其中一些计算机专门为其他计算机服务。

在SaaS架构下,客户端是其专长是向服务器询问信息并(通常)允许用户与该信息交互的程序,而服务器是其专长是高效地同时为大量客户端提供服务的程序

SaaS Communication Uses HTTP Routes

网络协议:参与网络的代理同意的一组通信规则

其中最基本的协议,也就是将各个电脑联网的协议就是TCP/IP

由通过 TCP/IP 连接进行通信的各个程序来确定通信规则。 正如我们将看到的,在 Web 浏览器和服务器的情况下,这些规则由 HTTP(超文本传输协议)定义

在TCP/IP协议下 ,每台计算机都被分配了一个 IP 地址,由四个字节组成,由点分隔

但是很多时候我们并用不到IP,这是为什么呢?

有时在网络文献中使用另一种称为 Domain Octet 的 Internet 服务来指代8 位IP

DNS 有自己的协议,也基于 TCP/IP,会自动调用以将主机名(如 www.eecs.berkeley.edu)映射到 IP 地址。 当您在浏览器的地址栏中键入诸如 www.eecs.berkeley.edu 之类的站点名称时,浏览器会自动联系 DNS 服务器以将该名称转换为 IP 地址

IP不够,PORT来凑

因为可以在同一台计算机上同时运行多个基于 TCP/IP 的程序,所以IP很多时候并不够准确来辨别是哪个程序。所以建立 TCP/IP 连接还需要一个从 1 到 65535 的端口号来指示服务器上的哪个程序是预期的通信伙伴

Web 服务器的默认端口为 HTTP 80 和 HTTPS 443

HTTP

HTTP的核心内容可以被概括为以下三点:

1.客户端通过指定 IP 地址和端口号(通常为 80)来启动到服务器的 TCP/IP 连接。 如果该 IP 地址的计算机没有侦听指定端口的 HTTP 服务器进程,则客户端会立即遇到错误,大多数浏览器将其报告为“无法访问此站点”或“连接被拒绝”。
2.否则,如果连接成功,客户端会立即发送一个 HTTP 请求,描述其对资源执行某些操作的意图。 资源是服务器应用程序操作的任何实体——网页、图像和创建新用户帐户的表单提交都是资源的示例。
3.服务器提供一个 HTTP 响应,要么满足客户端的请求,要么报告任何阻止请求成功的错误。 响应还可能包括 HTTP cookie 形式的信息,允许服务器在未来的交互中正确识别同一客户端。

在respond header中会有status code,如4xx,5xx,前者是client错误,后者是server错误(这种情况非常严重)

saas基础架构 saas技术架构_软件工程师


HTTP 是一种请求-响应协议:每个 HTTP 交互都从客户端发出请求开始,服务器向其发送响应(当然,除非服务器崩溃或网络不可用!) HTTP 请求必须包含路由和 HTTP 协议版本,通常还包括一些提供客户端信息的请求头。 HTTP 协议版本告诉服务器客户端可以理解哪些 HTTP 特性,以便(例如)如果客户端只理解旧协议版本,服务器可以避免使用更新的 HTTP 特性。

Cookie

网站如何跟踪信息,例如您是否已登录? 为此,HTTP 提供了一种称为 cookie 的机制。 客户端第一次从特定服务器发出请求时,服务器可以在响应中包含一个 Set-Cookie: 标头,其中包含服务器可用于在未来 HTTP 请求中识别此客户端的一大块信息。 客户端负责存储该信息并通过 Cookie: 在对同一服务器的每个后续请求中将其传回。

无痕浏览(incognito)和关闭Cookie的区别

现在很多人喜欢在网上看一些不可描述的东西又不想让别人知道,所以都开了无痕浏览,而每个浏览器又有关闭和打开Cookie的功能,那么这两者有什么区别呢?
前面说到了,server会在respond里包含一个Set-Cookie,通常是在respond header里的,而是否在request里发送来帮助server辨别client的身份就是client的事了,你可以使用curl -i --cookie-jar cookies.txt + URI 的方式来保存cookie
然后在访问的时候使用curl -v -b cookies.txt + URI 将cookie包含进去,这样server就能认出你了,也就不需要重新登录了。
无痕浏览就是在保存cookie以后不会将它发送给server,并且会在关闭窗口后删除cookie,而disable cookie则是让client不读取server发送的cookie

curl -i --cookie-jar cookies.txt http://esaas-cookie-demo.herokuapp.com/login

curl -v -b cookies.txt http://esaas-cookie-demo.herokuapp.com/

saas基础架构 saas技术架构_saas基础架构_02

以上,我还要赶作业,祝大家学有所成