分布式计算、云计算与大数据概论心得理解

第5章 WEB原理与应用开发

HTTP协议

HTTP协议的介绍

WWW是到目前为止最著名的分布式应用,中文名字为“万维网”,常简称为Web。WWW是目前世界上最具影响力的互联网服务,起源于1990年底,最早由欧洲核物理研究中心的Tim-Berners Lee提出的超文本传输协议HTTP,其目的是为研究中心分布在世界各地的科学家提供一个共享信息的平台。
从应用功能看,WWW是一种交互式图形界面的Internet服务,具有强大的信息连接功能,它使得成千上万的用户通过简单的图形界面就可以访问各个大学、组织、公司等的最新信息和各种服务。
从技术上看,WWW是一个基于HTTP的客户-服务器应用系统,即属于客户-服务器范型的分布式计算应用。

WWW的核心技术

----超文本标记语言 HTML
HTML语言是WWW服务的信息组织形式,用于定义在WWW服务器中存储的信息格式。

----超文本传输协议HTTP
HTTP是WWW服务使用的应用层协议,用于实现WWW客户机与WWW服务器之间的通信

TCP/IP协议

HTTP协议是TCP/IP 协议栈中的应用层协议,而TCP/IP是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议和Internet国际互联网络的基础。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。
注意:TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。与七层OSI参考模型不同,从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。各层的协议如下图所示,其中HTTP为应用层最重要的协议之一。

HTTP协议

HTTP是HyperText Transport Protocol(超文本传输协议)的缩写,它用于传送WWW方式的数据,是互联网上应用最为广泛的一种网络协议,下图为HTTP协议传输的网页。

HTTP协议发展史

HTTP/0.9:从1990年就已经用来作为WWW的传输协 议,当时非常简单,只支持GET方法,响应中携带 的消息必须HTML文件。已过时。只接受 GET 一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持 POST 方法,所以客户端无法向服务器传递太多信息。
HTTP/1.0: 1996发布RFC1945,这是第一个在通讯中指定版本号的HTTP 协议版本,至今仍被广泛采用,特别是在代理服务器中。

HTTP/1.1: 1997推出RFC2068,HTTP/1.1的标准。当前版本。持久连接被默认采用,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。

HTTP/1.1: 1999推出RFC2616,废弃了RFC2068标准。

Web开发技术简介

WEB开发技术简介

HTML

HTML(HyperText Markup Language),超文本标记语言或超文本链接标示语言,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。

HTML基本语法
  1. 基本结构标记
    HTML文件是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML文件的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。

2.段落标记
HTML中最基本的元素是段落,段落可以用

表示,浏览器将段落的内容从左到右,从上到下显示。

3.图像标记
定义图像的语法是:,URL指存储图像的位置。如果名为 “boat.gif” 的图像位于 www.w3school.com.cn 的 images 目录中,那么其 URL 为 http://www.w3school.com.cn/images/boat.gif。

4.超链接标记 — 文字
它类似这样:Link text,href属性规定链接的目标。开始标签和结束标签之间的文字被作为超级链接来显示。

JavaScript

JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。

css

级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Sheet)”,它是用来进行网页风格设计的。比如,如果想让链接字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。通过设立样式表,可以统一地控制HTML中各标志的显示属性。级联样式表可以使人更能有效地控制网页外观。使用级联样式表,可以扩充精确指定网页元素位置,外观以及创建特殊效果的能力。

XML

1.XML (EXtensible Markup Language)即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,它是一种很类似于HTML的标记语言,它被设计用来传输和存储结构化数据。
2.XML是一种平台无关的数据表示方法和数据交换语言,即使用XML创建的数据可以被在任何平台上的任何应用程序读取,或者说使用XML标记语言可以做到数据或数据结构在任何编程语言环境下的共享

动态网页技术

PHP -------------------------------------ASP -------------------------------------JSP
—动态网页与静态网页之间最大的区别在于网页与用户之间是否有交互反馈的过程,如动态网页上的留言板,点击数等等,采用了动态网页技术的同一网页能够对不同用户的同样操作做出不同的反应,而静态网页则没有这个交互过程,呈现给用户的是同一个无差别的页面。
常用的动态网页技术有PHP、ASP和JSP等。下面以JSP为例进行讲解。

JSP

JSP是Java Server Pages的缩写,是由 Sun公司倡导、许多公司参与,于1999年推出的一种动态网页技术标准。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的先进动态网站,这项技术还在不断的更新和优化中。

JSP页面的基本结构

在传统的HTML页面文件中加入java程序片和JSP标签就构成了一个JSP页面文件。一个JSP页面可由5种元素组合而成:
(1)普通的HTML标记符。
(2)JSP标签:如,指令标签、动作标签。
(3)变量和方法的声明。
(4)Java 程序片。
(5)Java 表达式。

CGI

CGI介绍

----公共网关接口CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。 CGI(The Common Gateway Interface)是一个标准化的协议,能够使应用程序(通常称为CGI程序或CGI脚本)同web服务器和客户端进行交互。CGI程序能够用Python, PERL, Shell, C or C++等语言来实现。
----CGI工作步骤如下:
Step1: 客户端发出请求
Step2: Web服务器激活CGI程序
Step3: CGI程序对客户端的请求做出反应
Step4: Web服务器将CGI的处理结果传送给客户端
Step5: Web服务器中断和客户端浏览器的链接
Step6: Web 浏览器将CGI程序的输出显示到浏览器的窗体

WEB表单

WEB表单是一种处理特殊类型的WEB页面,该类型页面可以是:1)提供了提示用户输入数据的图形用户界面;2)当用户点击页面上提交按钮时,将调用WEB服务器主机上的外部程序的执行。WEB表单的核心是一种HTML的 标签,该标签主要用于向服务器传输数据。
WEB表单从浏览器请求服务器的方法有GET和POST两种(与HTTP协议中的两种请求方法相一致)。如果方法(METHOD属性值)是GET,则CGI程序就从环境变量QUERY_STRING中获取Form数据;若方法是POST,则CGI程序就从标准输入(stdin)中获取Form数据。

Web会话

一个WEB会话

当用户在购物网上进行购物时,通常会有一个购物车,用户将只需将想购买一系列商品保存到购物车内,最后一起结账就行了。在购物车等Web应用的一个会话期间,将发送多个HTTP请求,每个请求都可能调用外部程序,如CGI脚本等。下图为该应用的一个简化会话:

WEB会话

WEB会话是指web客户端与服务器的一次连接、中间多次交互到最后断开的过程。由于HTTP协议是无状态的,因此需要会话跟踪技术管理客户端的多次请求的状态信息。会话(Session) 跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。

会话Session技术

1.Session是一种保存上下文信息的机制,它针对每一个用户,在服务器端开辟一块存储空间,用于存放用户的会话状态,通过SessionID区分不同的客户

2.使用Session对象存储特定用户会话信息,当用户在应用程序Web页面之间跳转时,存储在Session对象中的变量不会丢失,而将一直存在于整个会话中

Applet和Servlet

Applet介绍

Applet小应用程序是JAVA编写的客户端小程序,可通过因特网下载并在接收计算机上运行的一小段程序。运行在浏览器软件中,Applet典型用于为万维网网页页面定制或添加交互格式元素。
在这里插入图片描述

Applet特点

Applet必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。与一般的Java应用程序不同,Applet不是通过main方法来运行的。在运行时Applet通常会与用户进行互动,显示动态的画面,并且还会遵循严格的安全检查,阻止潜在的不安全因素(例如根据安全策略,限制Applet对客户端文件系统的访问)。
语言特点
1)从Applet类扩展而创建的用户Applet新类。
2)类定义举例:public class hello2 extends Applet
3)Applet依赖于浏览器的调用。
4)通过〈Applet〉标记嵌入在HTML文件中。

Applet生命周期

Applet的生命周期的四个过程:init()、start()、stop()、destroy()方法都是Applet类中已经定义的方法,系统根据上述规则自动执行Applet的生命周期。用户Applet中也可重新定义这些方法(重载)。
Applet的生命周期:
首先执行init()方法,构造了Car类的实例Car1,并计算了price1和mycar1。
然后执行start()方法,计算了price2。
然后执行paint()方法,在页面上显示Price1和price2的信息,过程如下图。

Applet工作原理

Applet在用户的计算机上执行时,还可以下载其它的资源,如声音文件、图像文件或更多的Java代码,有些Applet还允许用户进行交互式操作。但这需要重复的链接与下载,因此速度很慢,这是一个亟待解决的问题,可以想到的一个好办法是采用类似高速缓存的技术,将每次下载的文件都临时保存在用户的硬盘上,虽然第一次使用时花的时间比较多,但当再次使用时,只需直接从硬盘上读取文件而无需再与Internet连接,便可以大大提高性能了。在此过程中,浏览器与服务器的交互过程如下图。
在这里插入图片描述

Servlet介绍

1.servlet是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
2.服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGI(Common Gateway Interface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Java servlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。

Servlet执行过程

-----最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的WebServer(如tomcat, WebLogic, iPlanet, WebSphere)开始支持标准的Servlet API。Servlet的执行过程为:
2.客户端发送请求至服务器端
3.服务器将请求信息发送至Servlet
4.Servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
服务器将响应返回给客户端。

在这里插入图片描述

Servlet特点

----从servlet的命名可以看出其特点,如Applet=Application+let,表示小应用程序;Scriptlet=Script+let,表示小脚本程序;同样Servlet=Server+let,表示小服务程序。
Servlet 与 Applet 的比较

相似之处:
它们不是独立的应用程序,没有main()方法。
它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。
它们都有一个生存周期,包含init()和destroy()方法。

不同之处:
Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。
Servlet 则没有图形界面,运行在服务器端。

SSH框架与应用开发

MVC模型

MVC全名是Model View Controller,即模型、视图与控制器三个部分。MVC 架构的核心思想是:将程序分成相对独立,而又能协同工作的三个部分。通过使用 MVC 架构,可以降低模块之间的搞合,提供应用的可扩展性。另外, MVC 的每个组件只关心组件内的逻辑,不应与其他组件的逻辑混合。MVC 并不是 Java 所独有的概念,而是面向对象程序都应该遵守的设计理念。
在这里插入图片描述

SSH框架

SSH(struts+spring+hibernate)是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。
表示层:通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
业务层:管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
持久层:依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

在这里插入图片描述

Struts介绍

Struts 是Apache 项目,Struts的前身是Craig R.McClanahan编写的JSP Model2 架构。Struts 在英文中是"支架、支撑"的意思,这表明了 Struts 在Web 应用开发中的巨大作用,采用 Struts 可以更好地遵循 MVC 模式。此外, Struts 提供了一套完备的规范,以及基础类库,可以充分利用 JSP/Servlet 的优点,减轻程序员的工作量,具有很强的可扩展性。
Struts作为MVC模式的典型实现,对Model、 View和Controller都提供了对应的实现组件,其具体的实现如图所示。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值