Web

来源:互联网 发布:路由器网络延时 编辑:程序博客网 时间:2024/04/20 02:02

-------android培训 java培训  、期待与您交流-------

Web

WEB开发的相关知识
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
Internet上供外界访问的Web资源分:
静态web资源:指web页面中供人们浏览的数据始终是不变的。
动态web资源:指web页面供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
静态web资源开发技术:Html
常用动态web资源开发技术:JSP/Servlet、ASP、PHP等,在Java中,动态web资源开发技术统称为javaweb.

WEB服务器
学习web开发,需先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。
手动编写一个wen服务器访问程序:
ServerSocket server = new ServerSocket(8080);
Socket sock = server.accept();
FileInputStream in = new FileInputStream("c:\\1.html");
OutputStream out = sock.getOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while((len=in.read(buffer))>0){
out.write(buffer,0,len);
}
in.close();
out.close();
sock.close();
server.close();              

常见WEB服务器
WebLogic:BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范。
WebSphere:IBM公司产品,支持J2EE规范。
Tomcat:Apache产品,在小型的应用系统或者有特殊的系统中,可以使用一个免费的Web服务器,该服务器支持全部JSP以及Server规范。

Tomcat服务器
Tomcat官方站点:http://jakarta.apache.org

Tomcat服务器启动常见问题
java_home环境变量:
Tomcat是java编写的,所以Tomcat的启动需要java的支持,所以我们启动Tomcat前需要配置JAVA_HOME环境变量
在windows中设置java_home环境变量
只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。
端口占用问题:
80端口:实际开发中用
8080端口:学习研究用
8080端口(Tomcat默认端口)被占用,Tomcat将不能启动成功,这时可以修改conf目录下server.xml文件中的<Connector port="8080" protocol="HTTP/1.1" 属性,将端口号改成未被占用的端口,或者结束正在使用8080端口的程序或服务(IIS服务)。
Catalina_home环境变量的设置问题
用于设置startup.bat的启动路径,默认不设置。

Tomcat目录结构
bin:存放启动和关闭Tomcat的脚本文件
conf:存放Tomcat服务器的各种配置文件
lib:存放Tomcat服务器的支持jar包
logs:存放Tomcat的日志文件
temp:存放Tomcat运行时产生的临时文件
webapps:web应用所在目录,即供外界访问的Web资源的存放目录
work:Tomcat工作目录

常用协议与其工作端口:
http:  80
smtp:  25
pop3:  110
ftp:   23
https: 43

WEB应用程序
WEB应用程序指供浏览器访问的程序,通常也简称为web应用。
一个web应用由多个静态web资源和动态web资源组成,
如: html、css、js文件
    Jsp文件、Java程序、支持jar包、
配置文件等等。。。
组成web应用的这些文件通常我们会使用一个目录组织,这个目录称之为web应用所在目录。
Web应用开发好后,若想提供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射。

配置web应用(Context)
Context配置方法一:
在conf目录下的server.xml文件配置如下信息:
<Context path="/itcast" docBase="c:\news"/>
Context代表web应用,path="/itcast"表示配置了一个名称为itcast的虚拟目录,
如果此处的path="",那么就是配置了一个缺省的web应用。
docBase="c:\news"表示配置了news这个web应用,并将其映射到itcast这个虚拟目录上。
此方法配置完成后需要重启Tomcat服务器,所以实际开发用不到。
Context配置方法二:
在conf目录下的Context.xml文件中配置Context,在此处配置的Context信息将会被所有webapps所加载,
即被所有web应用所共享。
Context配置方法三(建议使用此种方式):
在conf\Catalina\localhost 目录下新建一个name.xml文件用来配置Context信息。此name可以作为Context的虚拟目录(此虚拟目录也可以是多级虚拟目录),也即是此name就是提供对外访问的虚拟路径。此种配置不需要重启Tomcat服务器。
如果此name=ROOT,那么此.xml文件配置的web应用将作为缺省的web应用。配置ROOT.xml需要重启Tomcat服务器。
Context配置方法四:
在META-INF目录下的context.xml文件中配置Context.
虚拟目录的自动映射:
Tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。换句话说,Tomcat服务器webapps目录中的web应用,外界可以直接访问。

WEB应用的组成结构
开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
mail(web应用所在目录)
  |-----html、jsp、css、js文件等(这些文件一般存在web应用的根目录下,根目录下的文件外界可以直接访问)
  |-----WEB-INF目录(该目录下的文件外界无法直接访问,由web服务器负责调用)
   |-----classes目录-----(java类)
   |-----lib目录-----(java类运行所需的jar包)
   |-----web.xml文件-----(web应用的配置文件)

Web.xml文件
web.xml文件是整个web应用中最重要的配置文件,它必须放在WEB-INF目录中。在开发web应用时,但凡涉及到对web应用中的web资源进行配置,通通是在web.xml文件中进行设置。
例如:
将某个web资源配置为网站首页
将servlet程序映射到某个url地址上
为web应用配置监听器
为web应用配置过滤器

配置虚拟主机
所谓配置虚拟主机,就是在Tomcat服务器中配置一个网站。
在一个Tomcat服务器中可以设置多个网站。
如需在WEB服务器中配置一个网站,需使用Host元素进行配置
例如:
<Host name="site1" appBase="c:\app"></Host>
配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。
配置多个网站。
缺省虚拟主机。

其他问题
web资源访问过程演示图
打包web应用war
配context元素的reloadable元素,让Tomcat自动加载更新后的web应用
Tomcat的体系结构和配置https连接器 公匙 私匙
keytool-genkey-alias tomcat-keyalg RSA
tomcat服务器的管理平台
web应用的开发前景B/S c/s

Tomcat体系结构
 

HTTP请求中的常用请求头
Accept:text/html,image/*  用于告诉服务器,客户机支持的数据类型
Accept-Charset:ISO-8859-1  用于告诉服务器,客户机采用的编码
Accept-Encoding:gzip,compress  用于告诉服务器,客户机支持的数据压缩格式
Accept-Language:en-us,zh-cn  客户机的语言环境
Host:www.it315.org:80    用于告诉服务器,,客户机想要访问的主机名
If-Modified-Since:Tue,11 Jul 2000 18:23:51 GMT   用于告诉服务器,资源的缓冲时间  
Referer:http://www.it315.org/index.jsp   用于告诉服务器,它是从哪个资源来访问服务器(防盗链)
User-Agent:Mozilla/4.0(compatible;MSIE 5.5;Windows NT 5.0)    用于告诉服务器,用于告诉服务器客户机的软件环境
Cookie   通过这个头想服务器带数据
Connection:close/Keep-Alive   连接的状态  关闭/保持请求
Date:Tue,11 Jul2000 18:23:51 GMT   时间

HTTP响应细节-状态行
格式: HTTP版本号 状态码 原因叙述<CRLF>
举例: HTTP/1.1 200 OK
状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。
响应状态码分为5类,如下所示:
状态码               含义
100-199  表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200-299 表示成功接收请求并已完成整个处理过程,常用200
300-399 为完成请求,客户需进一步细化请求。例如:请求的资源已经移动到一个新地址。  
            常用302(服务器未找到资源,需查找location指定地址),                                                                              304(查找缓存里的资源),307(查找缓存里的资源). 
400-499 客户端的请求有错误。   
        常用403(客户端权限不够),404(服务器未找到资源,可能是客户端地址错误)  
500-599 服务器端出现错误。常用500
HTTP请求中的常用响应头
Location:http://www.it315.org/index.jsp   请求重定向
Server:apache tomcat用于告诉浏览器服务器的类型                      
Content-Encoding:gzip  数据的压缩格式
Content-Length:80用于告诉浏览器回送数据的长度
Content-Language: zh-cn  语言环境
Content-Type:text/html; charset=GB2312  用于告诉浏览器回送数据的类型
Last-Modified:Tue,11 Jul 2000 18:23:51 GMT  用于告诉浏览器当前资源的缓存时间
Refresh: 1;url=http://www.it315.org   用于告诉浏览器多久刷新一次
Content-Disposition:attachment;filename=aaa.zip  用于告诉浏览器以下载方式打开数据
Trarsfer-Encoding:chunked   用于告诉浏览器数据的传送格式
Set-Cookie:SS=QO=5Lb_nQ; path=/search
ETag:W/87777-124223490000   缓存相关的头     
Expires:-1   用于告诉浏览器把回送的资源缓存对久,-1或0
Cache-Control:no-cache   用于控制浏览器不需要缓存
Pragna:no-cache   用于控制浏览器不需要缓存
Connection:chose/Keep-Alive
Date:Tue,11 Jul 2000 18:23:51 GMT

HTTP实用头字段
HTTP请求头字段:
Range头指示服务器只传输一部分Web资源。这个头可以用来实现断点续传功能。Range字段可以通过三种格式设置要传输的字节范围:
Range: bytes=1000-2000
传输范围从1000到2000字节。
Range: bytes=1000-
传输Web资源中第1000个字节以后的所有内容。
Range  bytes=1000
传输最后1000个字节。
HTTP响应消息头字段
Accept-Ranges:这个字段说明Web服务器是否支持Range,如果支持,则返回
Accept-Ranges:bytes,如果不支持,则返回Accept-Ranges: none
Content-Range:指定了返回的Web资源的字节范围。这个字段值的格式是:例:Content-Range: 1000-3000/5000