WEB服务器

1、服务器:提供网络访问的程序
2、容器:支持什么技术的服务器就叫做什么容器。比如Tomcat支持Servlet/JSP技术,又称为Servlet容器

JavaWeb应用的目录结构

appname   -------------javaweb应用的根目录
    WEB-INF ----------------javaweb应用中必须有,且必须取名为WEB-INF。放在该目录下的资源,客户端不能直接访问
        classes --------------- 存放servlet等class文件
        lib     --------------- 存放该web应用所依赖的jar包
        web.xml --------------- web应用的配置文件

配置虚拟目录:元素

1、Context元素:配置单个web应用
path属性:URL访问的入口
docBase属性:web应用的存放路径
reloadable属性:web应用中的资源改动后,是否自动加载。默认值是false
2、配置方式:
a、修改conf/server.xml文件,在Host元素中增加Context元素。不建议使用,因为改动server.xml后,需要重新启动Tomcat才会起作用
b、在Tomcat的安装目录/conf/[enginename]/[hostname]/[appname].xmlappname就是URL访问路径。在该xml文件中增加以下内容

1
2
<?xml version="1.0" encoding="gbk"?>
<Context docBase="(app所在路径)" />

注:如果想把自己的应用当做默认应用,可以在Tomcat的安装目录/conf/[enginename]/[hostname]/目录中建立ROOT.xml文件。
那么访问这个应用就可以http://localhost:8080/a.html

若想将a.html页面配置成默认主页,需要配置web.xml文件,在其中增加以下内容:

1
2
3
<welcome-file-list>
<welcome-file>a.html</welcome-file>
</welcome-file-list>

那么访问a.html我们只需要输入http://localhost:8080

配置虚拟主机,即配置一个网站

打开conf/server.xml文件,增加<Host/>元素
属性:
name:主机域名
appBase:该主机下的所有应用所在的文件目录
<host name="yrom.net" appBase="E:\yrom" />E:\yromweb应用绑定域名为yrom.net,将域名解析到服务器的IP,当客户端访问yrom.net就可以访问到指定的web应用。

HTTP协议

一.请求消息

1.请求行

位于请求消息的第一行。
格式: 请求方式 请求资源路径 HTTP协议版本号

常用的请求方式有GET和POST

1.1 GET请求方式:

  • 若请求服务器上的某个资源,没有指定请求方式,默认为GET方式。
  • 可以通过GET方式向服务器传递数据。在URL请求路径后加上?和参数,多个参数以&分割,如:
    http://www.yrom.net/a.html?name=yrom&psw=123
  • GET请求方式,数据不安全且有长度限制(1KB)

    1.2 POST请求方式:

  • 若使用POST请求方式传递数据,可以借助表单formmethod="POST"
  • 数据安全,在地址栏上不可见,且没有长度限制

    2.常用请求消息头

    从第二行开始到第一个空行。作用是向服务器传递客户端的一些基本信息
  • Accept:/ 浏览器可接受的MIME类型(Tomcat安装目录/conf/web.xml中查找)
  • Accept-Charset: 告知服务器,客户端支持哪种字符集
  • Accept-Encoding: 浏览器能够进行解码的数据编码方式
  • Accept-Language: 浏览器支持的语言。
  • Referer: 当前页面由哪个页面访问过来的。
  • Content-Type: 内容类型
  • Content-Length: 请求正文的长度

    3.请求正文

    从第一个空行开始,后面的都是正文。(可以没有)

    二.响应消息

    1.状态行:

    位于响应消息的第一行。格式:HTTP协议版本号 状态码 原因叙述
    常见状态码:
  • 404 Not Found
  • 200 OK
  • 302 重定向
  • 500 内部服务器错误
  • 2.常用消息头:

    从第二行开始到第一个空行
  • Location: 指定重定向的地址。需与302/307响应码一同使用
  • Server: 告知客户端服务器使用的web容器类型
  • Content-Encoding:gzip 告知客户端服务器发送的数据所采用的压缩格式
  • Content-Length: 告知客户端正文的长度
  • Content-Type:text/html;charset=UTF-8 告知客户端正文的MIME类型
  • Refresh:3;URL=otherurl 定期刷新。还可以刷新到其他资源
  • Content-Disposition:attachment;filename=2.jpg指示客户端以下载的方式保存文件。
  • Expires:2 告知客户端缓存时限(为-1即不要缓存)
  • Cache-Control:no-cache 控制客户端不要缓存
  • Pragma:no-cache 控制客户端不要缓存

    3.响应正文

    从第一个空行开始,后面的都是正文。