Tomcat服务器与Http协议

1. Web服务器

        PC机器安装一个具有web服务的软件,称之为web服务器。

1.1 Web服务软件的作用

         把本地的资源共享给外部访问。

1.2 常见的Web服务软件

(1)Tomcat::Apache组织提供一个免费的小型的服务器软件。支持Servlet和JSP规范。

(2)WebLogic:Bea公司的一个收费的大型的服务器软件,后被Oracle收购。支持EE的所有的规范

(3)WebSphere:IBM公司的一个收费的大型的服务器软件,支持EE的所有的规范。

(4)JBoss:是一个基于J2EE的开放源代码的应用服务器。JBoss是一个管理EJB的容器和服务器,JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

1.3 Tomcat概述

         Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。支持Servlet和JSP 规范,且最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。

1.4 Tomcat目录结构

    bin:脚本目录

                  启动脚本:startup.bat

                  停止脚本:shutdown.bat

    conf:配置文件目录

                  核心配置文件:server.xml

                  用户权限配置文件:tomcat-users.xml

                  所有web项目默认配置文件:web.xml

    lib:依赖库,tomcat和web项目中需要使用的jar包

    logs:日志文件.

                  localhost_access_log.*.txt tomcat记录用户访问信息,星*表示时间。

                 例如:localhost_access_log.2016-02-28.txt

    temp:临时文件目录,文件夹内内容可以任意删除。

    webapps:默认情况下发布WEB项目所存放的目录。

    work:tomcat处理JSP的工作目录。

1.5 启动和访问

    tomcat解压目录/bin/startup.bat双击运行启动tomcat

    访问路径:http://localhost:8080/

1.6 web应用目录结构

    在JavaEE规范中,WEB项目存在一定的目录结构,具体结构如下:

     项目名称

           |-----静态资源.HTML,CSS,JS

           |-----WEB-INF

                       |----web.xml  当前WEB项目的核心配置,Servlet2.5必须有,3.0可省略。

                       |----lib       当前WEB项目所需要的第三方的jar的存放位置。

                       |----classes  Java源码编译后生成class文件存放的位置。   

1.7 部署JavaWeb应用到Tomcat服务器上

    方式一:直接把应用拷贝到Tomcat\webapps目录中

    方式二:把应用打成war包。

2.HTTP协议
2.1 HTTP协议概述

    HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式。

2.2 HTTP请求与响应内容

2.3 HTTP请求内容分析
(1)请求行

    GET  http://localhost:8080/HTTP/index.html  HTTP/1.1

    #请求方式

          常见的请求方式:

            GET     请求获取Request-URI所标识的资源

            POST    在Request-URI所标识的资源后附加新的数据

            HEAD    请求获取由Request-URI所标识的资源的响应消息报头

            PUT     请求服务器存储一个资源,并用Request-URI作为其标识

            DELETE  请求服务器删除Request-URI所标识的资源

            TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断

            CONNECT 保留将来使用

            OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

         常用的请求方式:GET  和 POST   

            Get与Post请求的区别:

            GET方式提交

            a)地址栏(URI)会跟上参数数据。以?开头,多个参数之间以&分割。

            b)GET提交参数数据有限制,不超过1KB。

            c)GET方式不适合提交敏感密码。

            d)注意:浏览器直接访问的请求,默认提交方式是GET方式

            POST方式提交

            a)参数不会跟着URI后面。参数而是跟在请求的实体内容中。没有?开头,多个参数之间以&分割。

            b)POST提交的参数数据没有限制。

            c)POST方式提交敏感数据。

    #请求资源

        URL:  统一资源定位符。http://localhost:8080/HTTP/index.html只能定位互联网资源。是URI     的子集。

        URI: 统一资源标记符。/HTTP/index.html。用于标记任何资源。可以是本地文件系统,局域网的资源,可以是互联网。

    #http协议版本

        http1.0:当前浏览器客户端与服务器端建立连接之后,只能发送一次请求,一次请求之后连接关闭。

        http1.1:当前浏览器客户端与服务器端建立连接之后,可以在一次连接中发送多次请求。(基本都使用1.1)

(2)请求头

        Accept         text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8   --浏览器接受的数据类型

        Accept-Encoding    gzip, deflate                   --浏览器接受的数据压缩格式

        Accept-Language    zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2  --浏览器接受的语言

        Cache-Control    max-age=0

        Connection         keep-alive       -- 浏览器跟服务器连接状态。close: 连接关闭  keep-alive:保存连接

        Host               localhost:8080     --当前请求访问的目标地址

        If-Modified-Since     Mon, 19 Mar 2018 02:52:32 GMT  --浏览器最后的缓存时间

        Referer:         --当前请求来自于哪里

        Cookie:           -- 浏览器保存的cookie信息

        If-None-Match     W/"2665-1521427952627"

        Upgrade-Insecure-Requests     1

        User-Agent          Mozilla/5.0 (Windows NT 10.0; …)Gecko/20100101 Firefox/59.0   --浏览器类型

        Accept:浏览器可接受的MIME类型告诉服务器客户端能接收什么样类型的文件。

        Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集

        Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip

        Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。可以在浏览器中进行设置。

        Host:初始URL中的主机和端口

        Referrer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面

        Content-Type:内容类型,告诉服务器浏览器传输数据的MIME类型,文件传输的类型

        If-Modified-Since: Wed, 02 Feb 2011 12:04:56 GMT利用这个头与服务器的文件进行比对,如果一致,则从缓存中直接读取文件。

        User-Agent:浏览器类型.

        Content-Length:表示请求消息正文的长度

        Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接)

        Cookie:这是最重要的请求头信息之一 (在讲会话时解析)

        Date:请求时间GMT

(3)请求内容

        当请求方式是POST方式时,才能看见消息正文

        如:uName=tom&pwd=123

2.4 HTTP响应内容分析

    HTTP/1.1200 OK        --响应行

    Accept-Ranges bytes  --响应头

    Content-Length    145

    Content-Type  text/html

    Date   Mon, 19 Mar 2018 02:55:40 GMT

    ETag   W/"145-1521428128560"

    Last-Modified Mon, 19 Mar 2018 02:55:28 GMT

    Server Apache-Coyote/1.1

(1)响应行

    第一行:  HTTP/1.1  200   OK

    协议/版本   响应状态码  对响应码的描述(一切正常)

    状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

        1xx:指示信息--表示请求已接收,继续处理

        2xx:成功--表示请求已被成功接收、理解、接受

        3xx:重定向--要完成请求必须进行更进一步的操作

        4xx:客户端错误--请求有语法错误或请求无法实现

        5xx:服务器端错误--服务器未能实现合法的请求

    常见响应状态码:

        200(正常)  一切正常

        302/307(临时重定向)

        304(未修改)表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求。

        404(找不到)  服务器上不存在客户机所请求的资源。

        500(服务器内部错误)

(2)响应消息头

        Location: 指示新的资源的位置,通常和302/307一起使用,完成请求重定向

        Server:apachetomcat指示服务器的类型

        Content-Encoding: gzip服务器发送的数据采用的编码类型

        Content-Length:145 告诉浏览器正文的长度

        Content-Language:zh-cn服务发送的文本的语言

        Content-Type: text/html 服务器发送的内容的MIME类型

        Last-Modified: 9Mar 2018 02:55:28 GMT文件的最后修改时间

        Refresh: 1指示客户端刷新频率。单位是秒

        Content-Disposition: attachment; filename=aaa.zip指示客户端下载文件

        Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie

        Expires: -1

        Cache-Control: no-cache (1.1) 

        Pragma: no-cache  (1.0)  表示告诉客户端不要使用缓存

        Connection:close/Keep-Alive  

        Date: 19Mar 2018 02:55:40 GMT

(3)响应正文

        和网页右键“查看源码”看到的内容一样。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值