《web应用程序——CGI到Web三层系统》---读书笔记


第一章:何谓Web应用程序

1.1 Web应用程序的有效利用

1.1.1 各种Web应用程序

  • 网络商店
  • 公告板系统(BBS:Bulletin Board System)
  • 在线学习系统(WBT:Web Based Training)
  • 电子商务(Electronic Commerce)
  • 公司内部系统(例如OA系统:办公自动化(Office Automation))

1.1.2 Web应用程序的优点与缺点

1.导入与维护的成本
Web系统是可以低成本地导入的。
“低成本”是相较于:1.使用者而言 2.与过去的系统比较

除了服务器运行等初期费用,还需考虑为了维护系统而花费的人工费用。

之前建的uhhuhyep学习型社区就是一个论坛,方便同学在上面交流,可以轻易地区分享链接或者视频等,相较于过去的线下交流的话,如果要进行类似多媒体交流的话,那么同学就要提前准备一些资源:内容或者机器,来到时进行展示,这样看来是挺麻烦的。

建站的初期费用并不高,就是租个服务器而已,而为了维护系统,确实是比较花时间的,需要去更改一下配置还有备份数据什么的,之前忘记缴费,导致服务器的数据被清了,还要重新建一次站,然后发现之前的数据并不能导入, 这样无疑就增加了很多隐形的成本。

2.Web浏览器的相关限制
Web:利用超文本的信息网络(一个链接连着一个链接的结构)
Web浏览器:能够被方便地用于获取超文本数据和通过“更易于理解”的形式将数据表现出来的软件。

如何表现数据是Web浏览器的职责,但是有时候为了按照设计者的意图来表现数据,浏览器需要借助辅助软件。
有时这会添加成本。


比如我在一个新的地方,用一个新的浏览器去访问一个网页的时候,就需要额外地下载插件去辅助浏览器展示,有时候该浏览器所在的操作系统还不支持,就有点麻烦。

3.分布式处理的便利与困难
分布式处理:由多台电脑联机处理,但处理的效果像是在一台计算机上完成的一样。

集中式处理:

  • 维护成本高
  • 容易崩溃
  • 拓展性差

分布式处理:

  • 同步问题
  • 可伸缩性
  • 成本较低

1.2 Web应用程序的构造

1.2.1 Web的构造

Web是用来共享数据的。

cs结构

server

  • 准备好要共享的数据
  • 响应用户的要求,传递其所需的数据

client

  • 浏览器将取得的数据用易于理解的形式表现出来

1.2.2 从Web到Web应用程序

Web应用程序大体可以分为两种:

  • 动态Web页(由以前的Web页发展而来的)
  • Web分布式系统(利用Web通信协议)

1.动态Web页

动态Web页是以HTML为基础的扩张型Web页系统。

一开始Web服务器只是将预先准备好的数据传递到Web客户机。
但是如果想要根据用户输入和存取条件,生成**动态的**Web页,原来的HTML就相形见绌了。

动态网页的系统结构

  • 拓展了的HTML + 简单的程序
  • Web浏览器 + Web服务器 + 其他程序

实现动态网页的方法

  • 服务器方式
    应用server端程序动态生成HTML。
    使用CGI之类的服务器端脚本

  • 在客户端用下载的方式再现动态页面
    使用客户端脚本(JavaScript)和插件程序(Java Applet、Flash)

2.Web分布式系统

从集中处理到分布式处理

Web分布式系统需要利用Web通信技术。

  • 配置server和client两者所用的协议,在Web上通信
  • Web服务器+应用服务器+客户机的三层模式
  • 分布式对象可以使对象在各种机器上在一起协作

1.2.3 服务器端到客户端

什么内容在什么地方处理?

1.在服务器端处理
数据基本上在server端进行复杂的处理不依赖于Web浏览器的处理,

比如,无论是什么样的操作(输入的内容、内容检验、按了哪个按钮)都要向server传输数据,

这样server端要承受高负荷。

这解决了我之前的一个疑问:就是为什么有些网站或者app的验证会在本地验证,而不是在server端,比如用js代码进行验证,这样能大大减轻server的压力。

而且在本地进行校验的话,于你于我都更快捷方便。但是方便程度往往与安全程度成反比。越方便有时候就越不安全。

2.在客户端处理

客户端脚本+插件程序,以实现HTML实现不了的复杂的画面接口功能操作。

劣势:

  • 浏览器与机器的操作系统存在依存关系
  • 必须下载必要的程序(不方便&不安全)

1.2.4 客户端驱动的程序

1.嵌入式程序/帮助程序

功能:弥补浏览器功能上的不足(显示动画、查看pdf文件)

主流插件程序:

  • Flash Player

  • Media Player

  • QuickTime Player

  • RealPlayer

  • Adobe Reader

2.Java applet、ActiveX组件

Java applet:是一种在浏览器上运行的Java程序,可以用来处理图像、播放动画以及响应鼠标和键盘的输入。

ActiveX组件:

ActiveX 是一个开放的集成平台,为开发人员、 用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法。

使用 ActiveX, 可轻松方便的在 Web页中插入 多媒体效果、 交互式对象、以及复杂程序,创建用户体验相当的高质量多媒体CD-ROM 。

只能在IE上使用,其他地方不能使用。

之前在帮lyc弄一个网银的时候,发现那个网页必须用IE浏览器打开,然后还要在干净的虚拟机打开,然后才能加载xx盾的驱动程序,估计就是用ActiveX程序开发的一个安全程序,那版本和技术也太旧了吧,不过IE可能是大家都有的浏览器,想想也可以理解。

3.客户端脚本

浅谈服务端脚本和客户端脚本


1.2.5 服务器端驱动的程序

  • SSI(Server Side Include,服务器端嵌入)
  • CGI(common gateway interface,公共网关接口)
  • Java servlet
  • 服务器端脚本

1.2.6 其他技术

  • 与数据库协作

  • session管理
    Web服务器的职责是“交付被要求的数据”。请求是一个接一个独立的。
    Session可以将多个处理过程整合在一起。

  • 安全管理

  • 移动终端
    接口发生改变,根据同样的信息,作成整合终端——“一次书写,任意运行”的技术非常重要。

多终端的程序确实很好,比如Brup suite可以在mac,wins,linux上运行,那么我就不用担心换了个环境之后就没有拿手的工具了。


1.3 利用Web的分布式处理

1.3.1 Web三层系统

1.3.2 分布式对象

组件(component):根据职责的不同而划分成可独立运行部分

组件就是面向对象的编程中的“Object”。

在不同机器上运行的组件之间也可以协作,这被称之为分布式对象

Web组件有哪些呢?又是那7层?


第二章:Web应用程序的开发、导入方针

2.1 弄清楚究竟什么是必要的

在导入Web应用程序的时候,明确希望进行什么操作以及希望做什么程度的操作是非常重要的。


2.2 开发Web应用程序所必需的硬件与软件

为了实现预期的系统(结构),究竟什么样的系统(软件与硬件)是必要的.

2.2.1 是在server端处理还是在client端处理

2.2.2 确保速度

  • 处理速度

用户在等待了3秒或者7秒后仍然没能得到反馈,就会转而浏览其他网站。

方法:

  • 增加服务器性能(内存、CPU)
  • 增加服务器个数(分布式处理架构)
  • 等待页面中插入一些元素。


在我印象中,哔哩哔哩有时候在载入视频有时会很慢,但是它总会反馈给用户一些很有趣的信息,

哈哈哈,这样可以缓解用户等待的焦虑吧~


  • 更新速度(更新信息)

方法:

  • 做内容
  • 多使用自动化的发布内容方式

感觉hupu网无时无刻不在更新内容,感觉上面有看不完的内容。

csdn以前发博客的编辑板是很难用的,尤其是插入图片这一块,就是因为这一块难用,我才有一段时间在用jianshu,但是后来csdn加入了markdown语法的编辑模式,而且还有jianhsu没有的[TOC]显示目录的方式和给文章加标签,我就选择在csdn写博客,记录技术的一些东东,毕竟在csdn写技术博客感觉更好。

  • 线路速度

2.2.3 可扩索性的设计

如果能够保持可拓缩性,又能够方便地应对系统的变更和追加的需求,这样就可以构筑可以长期使用的系统。


第三章:world wide web与http

3.1 何谓world wide web

3.1.1 Web基础知识

  • world wide web(万维网)

是在互联网上作为标准的文档系统。

  • Web命名的由来?

分散在世界各处的信息,就像蜘蛛网(Web)般连接在一起,所以命名Web。

  • Web是用来共享信息的系统。

在共享信息时,有必要事先规定信息的形式与交换信息的顺序。

格式(Format):信息的形式
协议(Protocol):交换信息的顺序

3.1.2 只表示数据

Web浏览器里表示画面的方式。


3.2 HTTP

HTTP(HyperText Transfer Protocol,超文本传输通讯协议)是为了传送和接收在HTML文件里记叙的文档而设立的协议。

由Request(要求)和Response(应答)构成。

3.2.1 HTTP Request:

  • Web服务器接收的信息:

Request Head:显示客户端的信息

Web服务器可以根据这些信息和Request元的地址限制访问的范围。
但是,Request Head是由Web客户机”自己申明”的,未毕业一定是准确的。

可以进行伪造,像做过一道ctf题,限制要求来源地是Hk

Make sure you are in HongKong


3.2.2 HTTP Response:

HTTP Response是对应HTTP Request的应答,返回Response Head与数据本身(Object-body)

3.2.3 HTTP 的特征和问题

1.无状态(Stateless)

由于HTTP协议是无状态的,而出于种种考虑也不希望使之成为有状态的,因此,后面两种方案就成为现实的选择。具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。

2.安全性

为了给HTTP增加安全机制,开发了SSL(Secure Sockets Layer)和S-HTTP(Secure HyperText Transfer Protocol)等等加密协议。


3.3 Web浏览器

3.4 Web服务器


tips:

把知识连接成系统,加入经验

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值