Web原理及开发

第五章 Web原理与应用开发
HTTP协议

www是到目前为止最著名的分布式应用。它具有强大的信息连接功能www是一种基于HTTP的客户/服务器应用系统,属于客户/服务器范型的分布式计算应用。

TCP/IP传输控制协议)是Internet最基本的协议和Internet国际互联网络的基础。TCP/IP有网络接口层、网络层、传输层、应用层组成。其中HTTP是应用层的重要协议之一。

HTTP协议原理

HTTP是面向连接(基于TCP)、无状态的请求应答协议,也是一个客户端和服务端请求和应答的标准。通过使用Web浏览器、网络爬虫或者其他工具,客户端发起一个HTTP请求到服务器的指定端口,网络服务的默认端口为80,也可以指定为其它为占用的端口。web浏览器向web服务器发送请求,web服务器处理请求并返回适当的应答。

通信过程

在一次完整的HTTP的通信过程中,web浏览器与web服务器之间将完成7个步骤:
1、建立TCP连接
2、web浏览器向web服务器发送请求命令。
3、web浏览器发送请求头消息
4、web服务器应答
5、web服务器发送应答头消息
6、web服务器向浏览器发送数据
7、web服务器关闭TCP连接

HTTP请求

当浏览器向web服务器发出请求时,它向服务器传递了一个数据块,即请求信息,HTTP请求信息由3个部分组成:
1、请求方法URI协议/版本:HTTP请求可以使用多种请求方法。例如HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE。在Internet中最常用的方法是GET和POST。
2、请求头:包含许多有关客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言、请求正文的长度等。
3、请求正文:请求头和请求正文之间是一个空行,这个空行非常重要,它表示请求头已经结束,接下来是请求正文。

HTTP应答

HTTP应答与HTTP请求相似,HTTP响应也由3个部分组成:
1、协议状态/版本:所用协议版本号
2、响应头:包含许多信息,如服务器类型、日期时间、内容类型和长度等
3、响应正文:服务器返回的HTML页面
(响应头与正文之间必须用空行分隔)

HTTPS

HTTPS(超文本传输安全协议)是HTTP的安全版,是一种基于SSL/TLS的HTTP,所有的HTTP数据都是在SSL/TLS协议封装之上传输的。HTTP用于在web浏览器和网站服务器之间传递信息。

Web开发技术
HTML

HTNL即超文本标记语言,用于描述网页。它不是一种编程语言,而是一种标记语言。HTML文件的结构包括头部和主体两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。

JavaScript

JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,使用它的目的是与HTML、Java脚本语言一起实现在一个web页面中链接多个对象,与web客户交互作用,从而可以开发客户端的应用程序。它是通过嵌入或调入标准HTML语言中实现的。

CSS

级联样式表(CSS)用于进行网页风格设计。通过设立CSS,可以统一地控制HTML中各标志的显示属性。CSS更有效地控制网页外观,提高精确指定网页元素位置、外观以及创建特殊效果的能力。

XML

可扩展标记语言(XML)是一种类似与HTML的标记语言,主要用于结构化文档信息。XML用于传输和存储数据,即传输数据而非显示数据。XML没有预定义标签,需要自行定义标签。

动态网页技术

动态网页与静态网页的区别就在于网页与用户之间是否有交互反馈的过程,如动态网页上的留言板、点击数等。采用动态网页技术的同一网页能够对不同用户的同样操作做出不同的反应,而静态网页没有交互过程,呈现给用户的是同一无差别的页面。
动态网页技术有:JSP、ASP、PHP、CGI等。

Cookie机制原理

在程序中,会话跟踪是很重要的事。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作应该属于另一个会话,二者不会产生干扰。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论用户A是什么时间购买的,这都是属于同一个会话,不能放入用户B或用户C的购物车内。
web应用程序是使用HTP传输数据的。HTP是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话,即用户A购买了一件商品并放入购物车内,但再次购买商品时,服务器已经无法判断该购买行为是属于用户A的会话还是属于用户B的会话。要跟踪该会话,必须引入cookie机制。

Session机制原理

session是另一种记录客户状态的机制,使用起来比cookie简单一些。与cookie不同的是,cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器时,服务器把客户端信息以某种形式记录在服务器上。客户端浏览器再次访问是只需要从该session中查找该客户的状态就可以了。

Servlet

JavaServlet是一种作为单独文件跟网页一起发送的小程序,通常在服务器端运行,可提
供为用户进行运算或者根据用户互作用定位图形等服务。

Servlet实现过程:
1、客户端发送请求至服务器端
2、服务器将请求信息发送给servlet
3、servlet生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端请求。
4、服务器将响应返回给客户端

Applet

Applet是可通过Internet下载并在接收计算机上运行的一小仙程序。Applet通常用Java语言编写并运行在浏览器软件中,典型应用为万维网网页页面定制或添加交互格式元素。可以直接嵌入网页或者其它特定的容器中,并能够产生特殊的效果。

applet工作原理:
含有Applet的网页的HTML文件代码中部带有 和这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Nescape)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。

SSH框架与应用开发

SSH(Struts+Spring+Hibernate)不是一个框架,而是多个框架的集成,是目前较流行的一种web应用程序开源集成框架,用于构建灵活、易于扩展的多层次web应用程序。集成SSH框架的系统从职责上分为4层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。
Struts作为系统的整体基础构架,负责mvc的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对数据持久层提供支持。

Struts架构的工作原理

Struts是最早的java开源框架之一,它是MVC设计模式的一个优秀实现。 Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts -config.xml)隔离Model(模型)和View(视图),以Action的概念以对用户请求进行了封装,使代码更加清晰易读。 Struts还提供了自动将请求的数据填充到对象中以及页面标签等简化编码的工具。 Struts能够开发大型Java Web项目。
Struts技术基于MVC框架,Struts的实现依赖Servlet和JSP实现。EJB和JavaBean两个组件是Struts框禁业务功能实现的基础部件:Action和ActionServlet部件是框架实现控制力能的重要部件:视图部分则是由若干存在内在联系的JSP文件有机构成,实现系统功能。其工作原理如下:
1)使用者通过浏览器客户端发送HTIP协议的数据请求。
2)HITP请求到达服务器后,经过控制器,使用框架结构填充FormBean。
3)经过填充的数据请求通过框架中控制器的Action组件进行数据业务处理。
4)经过控制器处理过的业务数据调用Stuts的基础部件实现业务逻辑。
5)将业务逻辑经过转换形成JSP业务进行处理,井将处理结果反或
6)用户在客户端或者浏览器上得到HTTP请求的响应

Spring

Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

优点:
1、低侵入式设计,代码污染极低
2、独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
3、Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦
4、Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值