WEB开发的相关知识

WEB开发的相关知识

 

Internet上供外界访问的WEB资源分为:

 

1.静态WEB资源:数据不变

 

2.动态WEB资源:指WEB页面中供人们浏览的数据是由程序产生的,不同时间点访问WEB页面看到的内容各不相同.

 

 

 

静态WEB资源开发技术

 

HTML CSS

 

常用动态WEB资源开发技术:

 

JSP/Servlet ASP PHP等

 

 

 

WEB服务器

 

常用WEB服务器

 

 

WebLogic 服务器--BEA公司

 

WebSphere服务器--IBM公司

 

Tomcat服务器--apache

 

 

 

 

Tomcat服务器

 

常见问题

 

1.端口被占用 

 

两种解决方案

 

1.查看其他程序是否占用端口

 

2.改Tomcat服务器启动端口

 

Tomcat-conf--server.xml

 

--<Connector connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/">

 

3.Catalina_home环境变量问题

 

 

4.Java_home环境变量的设置问题

 

5.只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK主目录,就可以使用startup.bat文件启动Tomcat.

 

 

 

Tomcat--bin--startup--set CURRENT_DIR=%cd% 当前目录

 

CATALINA_HOME环境变量

 

cd..返回上一层目录

 

注意 在配置好Tomcat时会出现的错

 

问题 :

 

若两个盘符下都有Tomcat服务器

 

若想访问 WEB 文件 就会出现该文件找不到现像  

 

两个Tomcat 路径服务器冲突

 

出现类似事况先查看catalina的设置

 

解决方法 不要设置catalina变量  

 

 

 

Tomcat目录结构

 

bin--存放启动和关闭Tomcat的脚本文件

 

conf--存放Tomcat服务器的各种配置文件

 

lib--存放Tomcat服务器的支撑jar包

 

logs--存放Tomcat的日志文件

 

temp--存放Tomcat运行时产生的临时文件

 

webapps--web应用所在目录,即供外界访问的web资源的存放目录

 

work--Tomcat的工作目录

 

在WEB服务器中安装WEB项目

 

1.WEB项目通常也称之为WEB应用,或WEB应用程序.

 

2.通常开发人员开发好一个WEB项目后,这个WEB项目需要放在WEB服务器的WEBAPPS目录下

 

 

 

WEB程序的目录结构

 

webapps

 

Mail目录(存放静态)---web应用目录

 

HTML文件 WEB-INF目录

JSP文件

 

 

 

 

 

配置虚拟目录

 

1.映射虚拟目录也可理解为通知WEB服务器管理这个项目,以供外界访问

 

2.对Tomcat6而言,它会自动管理其webapps目录下放置的所有目录(web项目),并把它们映射成虚拟目录,所以tomcat6的webapps目录下安装的web项目可以被外界直接访问.

 

3.若用户不想把项目放到webapps目录中,而想让tomcat服务器管理,以便外界访问

则如下:

<Context path="/icast" docBase="c:/app">

 

service.bat中配置

在host元素里面配置一个context,即告诉web服务器

<Context path="/itcast" docBase="c:/abc"/>

 

将C盘中的abc映射到虚拟目录itcast

 

Context表示上下文(WEB应用)

 

 

 

 

 

 

查看tomcat关于context元素的文档

 

 

docBase:指定web应用程序的文档基目录或者WAR文件的路径名.可以指定目录的或WAR文件的绝对路径名,也可以指定相对于Host元素的appBase目录的路径名.该属性是必需的.

 

path:指定WEB应用程序的上下文路径.在一个特定的虚拟主机中,所有的上下文路径都必须是唯一的.如果指定一个上下文路径为空字符串"",则定义了这个虚拟主机的WEB应用程序,负责处理所有的没有分配给其他WEB应用程序的请求.

 

reloadable 自动加载更新后的文件.如果设置为ture,Tomcat服务器在运行时,会监视WEB-INF/classer和WEB-INF/lib目录下类的改变,如果发现有类被更新,Tomcat服务器将自动重新加载该web应用程序。建议在产品发布时不使用,该属性的默认值是false.

 

unpackWAR  如果为true,Tomcat在运行Web应用程序前将展开所有压缩的Web应用程序.默认值是true.

 

打JAR包

jar -cvf  jar名  目录名

 

 

缺省WEB项目  

 

 

在server.xml中配置缺省

<Context path"/" docBase="c:/abc"/>

 

 

 

web.xml文件

 

1.Web.xml文件为web应用的配置文件,它必须放在web应用目录/WEB-INF目录下.

 

2.Web.xml文件用于对web应用下的web资源进行配置。

 

3举例:通过web.xml文件配置网站首页。

 

 

WEB-INF--web.xml 

是WEB项目里面WEB资源的配置文件

 

进入web.xml

 

抄conf--web.xml

 

<?xml version="1.0" encoding="ISO-8859-1">

<web-app>

配置主页

<welcome-file>2.html</welcome-file>

</web-app>

 

 

 

 

 

 

 

 

在一台WEB服务器中配置多个网站

 

1.在一台WEB服务器中配置多个网站的过程称之为配置虚拟主机,配置虚拟主机可以实现在一台WEB服务器上放多个网站.

 

2.如需在WEB服务器中创建WEB站点,需使用Host元素进行配置,例:

 

<Host name="site1" appBase="c:/app"></Host>

 

 

虚拟映射

<Context path="/news" docBase="c:/sina/news"/>

 

缺省映射

<Context path="" docBase="c:/sina/news"/>

 

 

3.配置的主机(网站)要相被外部访问,必须在DNS服务器或windows系统中注册.

 

 

 

缺省虚拟主机

 

 

一台服务器中只能指定一个缺省虚拟主机

 

appBase指定的目录是网站的根目录

 

 

配置https连接器

 

keytool-genkey-alias (取的别名)tomcat-keyalg RSA(算法)

生成数字证书(公钥私钥加密)

 

 

 

 

WEB开发的相关知识

 

1.B/S架构的优点:

 

1.1程序员将程序开发好后,安装到WEB服务器中,客户端只要有浏览器就可以访问程序,不需要安装其它任何软件,极大地方便了程序的部署和实施.

1.2由于用户访问的程序在服务器中,因些改动服务器中的程序,客户端访问得到的就是改动后的程序.方便软件的维护和升级.

 

2.B/S架构的缺点:

 

B/S架构唯一的缺点在于:程序结果的显示由客户端浏览器完成,浏览器功能的局限性,就限制了程序结果的示示效果.

 

 

 

 

 

 

 

 

 

 

 

HTTP协议

它是TCP/IP协议是一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程.

 

HTTP有两个版本

 

HTTP 1.0  HTTP1.1

 

区别

 

1.在HTTP1.0协议中,客户端与WEB服务器建立连接后,只能获得一个WEB资源

 

2.HTTP1.1协议,允许客户端与WEB服务器建立连接后,在一个连接上获取多个WEB资源.

 

 

 

HTTP请求

 

一个完整的HTTP请求包括:

 

 

一个请求行,若干消息头,以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开

 

 

1.请求行  用于描述客户端的请求方式,请求的资源名称,以及使用的HTTP协议版本号

 

2.消息头用于描述客户端请求哪台主机,以及客端的一些环境信息等

 

 

 

 

请求行的细节

 

请求行中的GET称之为请求方式,请求有:

 

POST  GET

 

不管POST 或GET,都用于向服务器请求某个WEB资源,这两种方区的区别主要表现在数据传递上,客户端通过这两种方式都可以带一些数据给服务器.

 

1.如请求方式为GET方式,则可以在请法语的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔

 

 

 

重点:GET方式的特点:在URL地址后附带的参数是有限制其数据容量不能超过1K.

 

 

 

 

POST方式的特点:传递的数据无限制

 

 

 

第一次打开浏览器时,浏览器默认是以GET方式提交的.

 

 

 

消息头

 

Accept:通知服务器浏览器所支持的数据类型

 

Accept-Charset:通知服务器浏览器所支持的字符集

 

Accept-Encoding:通知服务器浏览器所支持的数据解压算法.

 

Accept-Language:通知服务器客户端的语言环境.

 

Host:通知服务器,浏览器访问服务器上的哪台主机.

 

If-Modified-Since:告诉服务器,缓存网页的时间.

 

Referer:告诉服务器浏览器是从哪个网页来的(用于防盗链)

 

User-Agent:告诉服务器,浏览器的版本

 

Cookie

 

Connection:close(访问完网站后断开连接)/Keep-Alive(访问完后不断开连接)

 

 

 

 

HTTP响应

 

 

一个HTTP响应代表服务器向客户端回送的数据,它包括;

 

一个状态行,若干消息头,以及实体内容,其中的一些消息头和实体内容都是可选的,消息头

 

 

 

 

响应状态码:

 

100-199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程

 

200-299:表示成功接收请求并已完成整个处理过程,常用200

 

300-399:为完成请求,客户需进一步细化请求.例如,请求的资源已经移动一个新地址,常用302 307 和304(找缓存)

 

400-499:客户端的请求有错误,常用404(不存在的资源)

 

500-599:服务器端出现错误,常用500

 

 

 

 

0**:未被始化 

1**:请求收到,继续处理 

2**:操作成功收到,分析、接受 

3**:完成此请求必须进一步处理 

4**:请求包含一个错误语法或不能完成 

5**:服务器执行一个完全有效请求失败 

 

100——客户必须继续发出请求 

101——客户要求服务器根据请求转换HTTP协议版本 

 

200——交易成功 

201——提示知道新文件的URL 

202——接受和处理、但处理未完成 

203——返回信息不确定或不完整 

204——请求收到,但返回信息为空 

205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件 

206——服务器已经完成了部分用户的GET请求 

 

300——请求的资源可在多处得到 

301——删除请求数据 

302——在其他地址发现了请求数据 

303——建议客户访问其他URL或访问方式 

304——客户端已经执行了GET,但文件未变化 

305——请求的资源必须从服务器指定的地址得到 

306——前一版本HTTP中使用的代码,现行版本中不再使用 

307——申明请求的资源临时性删除 

 

400——错误请求,如语法错误 

401——请求授权失败 

402——保留有效ChargeTo头响应 

403——请求不允许 

404——没有发现文件、查询或URl 

405——用户在Request-Line字段定义的方法不允许 

406——根据用户发送的Accept拖,请求资源不可访问 

407——类似401,用户必须首先在代理服务器上得到授权 

408——客户端没有在用户指定的饿时间内完成请求 

409——对当前资源状态,请求不能完成 

410——服务器上不再有此资源且无进一步的参考地址 

411——服务器拒绝用户定义的Content-Length属性请求 

412——一个或多个请求头字段在当前请求中错误 

413——请求的资源大于服务器允许的大小 

414——请求的资源URL长于服务器允许的长度 

415——请求资源不支持请求项目格式 

416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段 

417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求 

 

500——服务器产生内部错误 

501——服务器不支持请求的函数 

502——服务器暂时不可用,有时是为了防止发生系统过载 

503——服务器过载或暂停维修 

504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长 

505——服务器不支持或拒绝支请求头中指定的HTTP版本

 

 

 

 

响应头

 

 

 

状态行用于描述服务器对请求的处理结果.

 

 

消息头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据.

 

 

实体内容代表服务器向客户端回送的数据

 

 

 

 

 

 

 

Location:用于通知浏览器去找哪个资源(经常和302状态码和用)

 

Server:服务器是什么类型的服务器

 

Content-Encoding:用于告诉浏览器压缩类型.

 

流行的压缩算法GZIP

 

JAVA.API.GZIPOUT 压缩流

 

 

String content="abcd";

//把压缩数据写到一个缓冲中

 

ByteArrayOutputStream bout-new ByteArrayOutputStream();

 

 

GZIPOutputStream gout=new GZIPOutputStream();

gout.write(content.getBytes());

 

gout.close();

 

//从缓冲流中得到压缩后的字节数组

 

byte result[]=bout.toByteArray();

 

 

response.setHeader("Content-Encoding","gzip");

 

response.setHeader("Content-Length",result.length+"");

 

 

//得到与浏览器相关的输出流

 

OutputStream out=response.getOutputStream();

 

//把压缩后的字节数组写给浏览器

 

out.write(result);

 

 

 

 

压缩算法  数据越小 压缩后越大

 

 

 

 

Content-Length:用于告诉浏览器,服务器回送的数据大小

 

Content-Type:服务器回送数据的类型

 

Last-Modified:用于告诉浏览器,数据的最后更新时间.(用于缓存用的)

 

Refresh:用于告诉浏览器,刷新回送的数据.

 

Content-Disposition:通知浏览器,以下载的方法打开回送的数据.

 

Expires:-1 通知浏览器回送数据的缓存多长时间,如果值为0或为负数的话,就是不缓存.

 

Pragma  no-cache:通知浏览器不要缓存数据.

 

Cache-Control:no-cache  通各浏览器不要缓存数据

 

 

 

通用信息头

 

通用信息头指既能用于请求,又能用于响应的一些消息头.

 

你可能感兴趣的:(WEB开发的相关知识)