Tomcat Server
自己搭建一个Server服务器
package com.test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
while (true){
//创建ServerSocket对象,并指定端口
ServerSocket serverSocket = new ServerSocket(8888);
//参加socket对象
Socket socket = serverSocket.accept();
//创建I/O流 ---- 使用html文件的绝对路径
FileInputStream in = new FileInputStream(
"D:\\java_work\\IDEA_work\\javaWebStudy\\study7_Server\\src\\com\\test\\index.html");
//创建输出流对象
OutputStream out = socket.getOutputStream();
//流长度
int len = 0;
//设置缓冲区
byte[] buffer = new byte[1024];
//读取流
while ((len = in.read(buffer)) > 0){
out.write(buffer, 0, len);
}
//回收内存
in.close();
out.close();
socket.close();
serverSocket.close();
}
}
}
Tomcat文件目录结构
Tomcat实现虚拟目录映射:
(实现tomcat服务器访问其他路径下的文件)
- 方式一:,在server.xml内编写以下配置
弊端:每次配置需要重启Tomcat服务器
- 方式二:在
...\apache-tomcat-7.0.91\conf\Catalina\localhost
路径下创建任意名称的XML文件,文件名称为虚拟目录名称,文件内写以下配置:
*映射多级目录,只需将XML文件名改为Father#Son#…#类型的文件名称
文件名称:
a#b#c#d.xml
访问路径:
http://localhost:8080/a/b/c/d/index.html
*配置缺省WEB应用(默认指定的WEB应用),只需将XML文件名改为ROOT.xml,并重启;或者在server.xml内进行如下配置并重启:
Http 协议
请求头
- Accept:告诉服务器所支持的数据类型
- Accpet-Charset:告诉服务器所支持的编码格式
- Accept-Encoding:告诉服务器所支持的数据压缩格式
- Accept-Language:客户机的语言环境
- Host:想访问的主机名
- If-Modified-Since:资源的缓存时间
- Referer:告诉服务器,它是从哪个资源来访问服务器的 — 通过Referer来判断是否是该网站发过来的请求
- User-Agent:客户机的软件环境
- Cookie:向服务器携带数据
- Connection:请求完成后是保持连接还是关闭连接
- Date:请求时间
Http 响应(一个状态行、若干消息头、实体内容)
- 状态码:表述服务器对请求的处理结果
- Http响应头
- Location:配合302状态码使用,告诉客户找谁 ---- 实现请求重定向
- Server:告诉浏览器服务器类型
- Content-Encoding:告诉浏览器数据压缩格式
- Content-Length:告诉浏览器返回数据的长度
- Contetn-Type:回送数据的类型,控制浏览器以哪种方式打开数据 — 对应于Tomcat文件夹下的web.xml内
- Last-Modified:告诉浏览器当前资源的缓存时间
- Refresh:告诉浏览器多长时间刷新一次 ---- 用在聊天室、股票等等
- Content-Disposition:告诉浏览器以下载方式打开数据
- Transfer-Encoding:告诉浏览器数据打传输方式
- Expires:告诉浏览器资源缓存的时间(-1/0,表示不缓存)
以下两个头也可以表示告诉浏览器不要缓存数据:
- Cache-Control:no-cache
- Pragm:no-cache
- Range:实现断点下载
- Range 测试代码