Tomcat服务器与HTTP协议

Tomcat服务器与HTTP协议

一.  Tomcat服务器

         1.tomcat服务器

                  

                   1.web :网页,它代表的是网络上的资源。(java技术开发动态的web资源,即动态web页面,在Java中,动态web资源开发技术统称为Javaweb。)

                            网络的资源分为两种

                                     1).静态资源------主要用于展示信息     html

                                     2).动态资源------交 互                 jsp asp php

                   2.javaweb开发中常见的服务器.

                            weblogic  BEA公司------它是一个javaEE规范的web服务器.

                                                --学习weblogic 成本比较低。中文资源在网络上比较多。

                                                                    -- weblogic是收费。

                                                                             

                            WebSphere IBM  -------- 它是一个javaEE规范的web服务器.

                                                                           --webSphere是收费。

                                                                           --学习成本高。相关资料比较少。

                            tomcat    --------     它是开源免费的. 它是一个servlet规范的web服务器.

                            Jboss       ------     hibernate公司   javaEE规范的web服务器. 

                   3.tomcat服务器介绍

                            在公司中应用比较多的 tomcat5  tomcat5.5

                            我们学习的是tomcat7   servlet3.0技术    

                            1).在apach的官网下载tomcat7.

                            2).配置

                                     关于安装后注意事件

                                               a). 机器上必须安装jdk,并且配置了JAVA_HOME                         

                                                        --JAVA_HOME=D:Javajdk1.7.0_10       

                                               b). 端口被占用.

                                                        --关闭占用8080端口的软件.

                                                                 --在win7下可以使用netstat命令查看占用端口的程序

                                                                 --在cmd/ netstat -ano 查看占用端口的程序的PID

                                                                 --在资源管理器中根据PID查找程序,关闭这个进程。

                                                                          注意:有些情况下,进程是系统进程,不能关闭,这时我们可以通过修改tomcat端口来让tomcat服务器启动.

                                                c). CATALINA_HOME问题

                                                                 --CATALINA_HOME它配置的是tomcat的根目录.

                                                                 --如果在环境变量中配置了CATALINA_HOME,那么

                                                                 --你执行  startup.bat文件,启动永远是CATALIN_HOME指定的tomcat。

                                                       

                                                d). 安装完成tomcat后,怎样运行它.

                                                                 tomcat/bin/startup.bat   ---开启服务器

                                                                 tomcat/bin/shutdo-wn.bat ----关闭服务器.

                                                                 测试是否启动成功

                                                                           http://localhost:8080

                   --------------------------------------------------------------------------------------------------------------------

web应用程序.

                              1.web应用程序的基本的目录结构(重点)

                                     目录

                                               |-----可以直接放置web资源  

                                                          可以是静态的也可以是动态的

                                                          html,js,css或图片,音频.

                                                          动态可以是 jsp 

                                               |------WEB-INF (它是区别静态web与动态web,不对外发布)

                                                                 -----classes 目录  ----它是用于放置java文件.

                                                                 -----lib目录 -----------它是用于存放  web应用的jar 包.

                                                                 -----web.xml文件(******)---它是web应用的配置文件.

                              2.关于tomcat加载web应用(虚拟目录)----重点**********************

                                              

                                               Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,

                                               这个过程称之为虚似目录的映射。A啊

                                    

                                     (1).在tomcat/conf/servic.xml文件中进行配置.

                                                        在service.xml文件的</Host>上面添加一句话.

                                                        <Context path="虚拟目录名称"  docBase="web应用的路径"/>

                                                              ---path代表应用的访问路径,一定要有"/"

                                                              ---docBase代表的是应用的真实路径

                                                                 例如: <Context path="abc" docBase="D:myweb"/>

                                                                                                               

                                     (2)在tomcat/conf/catalina/localhost目录

                                                       ---- 在其下创建任意一个名称的xml文件

                                                       ----  在文件中写入  <Context docBase="web应用的路径" />

                                                        例如:

                                                                 创建的xml文件的名称是   aaa.xml文件,其内容是

                                                                 <Context docBase="d:/myweb" />

                                                         例:http://localhost:8080/abc/index.jsp

                            ------------------------------------------------------   ------------------------------------------

 小知识点

          访问URL地址解析的过程 ? http://localhost:8080/应用名/html/1.html

                 http:

                       <Connector   protocol="HTTP1.1">

                       localhost:代表主机是本地主机

                            <Engine name="Catalina" defaultHost="localhost">

                            <Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true">

                             :8080  代表http协议使用的端口号  server.xml的69行

                             <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

                 定位文件夹:

                              <Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true"

                                  xmlValidation="false" xmlNamespaceAware="false">

                                           1.关于web应用的首页设置

                                                        在tomcat/conf/web.xml文件对首页进行默认设置.

                                                         <welcome-file-list>

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

                                                                 <welcome-file>index.htm</welcome-file>

                                                                 <welcome-file>index.jsp</welcome-file>

                                                        </welcome-file-list>

                                                        在tomcat/conf/web.xml文件设置的内容是对tomcat下所有工程生效。

                                                        上面内容的意思是它如果有index.html  index.htm  index.jsp

                                                        那么我们在访问web应用时,如果没有指定资源,就默认访问上面页面。

                                                        我们web应用中有一个页面叫  a.html,我们想让其是默认被访问的页面。

                                                        可以在自己的web.xml文件中进行设置.

                                            2.关于war包生成.

                                                        java application -----jar文件.

                                                        web application------war文件。

                                                        使用压缩工具将web应用压缩成zip文件,修改后缀名为war,

                                                        将war文件直接复制到tomcat/webapps下,当服务器启动时,可以自动解压。

                            -------------------------------------------------------------------------------

                                     配置主机

                                               1.本地的域名解析文件

                                                        C:WindowsSystem32driversetchosts文件

                                                        对于http协议,默认访问的端口是80端口。

                                               2.修改tomcat的默认端口为80.

                                                        在tomcat/conf/service.xml文件中.

                                               3.关于tomcat默认访问的工程

                                                        默认访问的工程是webapps/ROOT

二.  http 协议

                                               什么是协议?

                                               在web开发,使用的绝大部分都是http协议。

                                               用于定义浏览器与web服务器进行通信的格式.

                                               基于请求---响应模式.

                                               tcp协议是在传输应用

                                               http协议是在应用层.

                                               http是基于tcp协议。

                            --------------------------------------------------------

                                               1.使用telnet

                                                        向tomcat服务器发送的请求是

                                                                 GET /index.jsp HTTP/1.1

                                                                 host:localhost

                                               2.使用httpwatch进行抓包

                                     --------------------------------------------------------

                                            http请求:

                                                        分为三部分

                                                                 1.请求行

                                                                 2.请求头

                                                                 3.请求正文.

                                                                

                                                                 注意:请求正文与请求头之间有一个空白行.

                                                                 如果要想有请求正文我们需要使用form表单,只有在post时,才能出现请求正文。

                        ------------------------------------------------------------------------   --------------------------------------------------

           http请求协议详解

                                                         

                                             1.请求行

                                                                                    1. 请求方式  常用的是get/post

                                                                                    2. 请求资源路径.

                                                                                    3. http版本协议

                                                                                             http协议版本 (1.1与1.0区别)

                                                                                                       1.0---请求响应结束,会断开链接

                                                                                                       1.1---请求响应结束,可以在次发送请求,直到超时,断开.           

                                             2.请求头中的重点

                                                                                    Accept-Encoding:gzip  ------浏览器支持的文件类型  gzip代表的是压缩文件

                                                                                    if-Modify-since----与http响应中的 last-modify组合使用.

                                                                                    referer----- 可以完成防盗链

                                                                                    user-agent       ----得到浏览器的版本.

        

                                                                                    请求头中的信息都是以 name:values的方式出现的.

                                                                                    一个name可以对应多个value,value与value之间使用","分开;

--------------------------------------------------------------------------------------------------------------------------

                                                     http响应

            

                                                                 1。响应行

                                                                           响应状态码

                                                                                   1xx------informational  服务器端什么都没做,直接响应。

                                                                                   2xx------successful 成功                 **200  响应成功

                                                                                   3xx------redirection   客户端向服务器发送请求,服务器做了一些操作,没做完,通过浏览器继续执行其它操作-                                                                                                                    * 302  重定向      304  not modify  没有改变----是一种缓存策略.

                                                                                   4xx------客户端错误  client error  **  404  页面找不到.

                                                                                   5xx------服务器端错误  server error  **     500  服务器挂掉了。

                                                                 2.响应头.

                                                                           Location: http://www.it315.org/index.jsp ----与302状态码完成重定向

                                                                           Content-Encoding: gzip ----filter是使用,进行压缩

                                                                           Content-Type: text/html; charset=GB2312  --设置响应数据的mimeType类型.

                                                                           Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT

                                                                           与if-modify-sinze组合使用.(见下图)

                                                                           Refresh: 1;url=http://www.it315.org

                                                                             上面操作时在1秒后跳转到url指定的路径。

                                                                           Content-Disposition: attachment; filename=aaa.zip

                                                                             上面的操作我们会在文件下载是讲到

                                                                           Expires: -1

                                                                           Cache-Control: no-cache 

                                                                           Pragma: no-cache  

                                                                       这三个可以进行浏览器缓存设置.

                                                                 3.响应正文,

                                                                           响应正文的内容会被显示在浏览器窗口中。

                                               -------------------------------------------------------------

                                                        tomcat服务器本身也提供压缩优化

                                                       

                                                                 在server.xml文件中对8080端口进行配置

                                                                           <Connector port="8080" protocol="HTTP/1.1"

                                                                              connectionTimeout="20000"

                                                                              redirectPort="8443"

                                                                              compressableMimeType="text/html,text/xml,text/plain"

                                                                              compression="on"

                                                                              />

                                                                           这时在通过8080端口访问时,可以册封指定类型的响应的数据进行压缩。  

                                                                 80端口

                                                                            00:00:00.000 0.074        11690       GET  200  text/html;charset=ISO-8859-1        

                                                                 8080端口

                                                                            00:00:00.000 0.063        2328         GET  200  text/html;charset=ISO-8859-1        

              

原文地址:https://www.cnblogs.com/lulu638/p/4234743.html