JavaWeb服务器开发知识总结(HTTP,Servlet)
1. HTTP协议
HTTP协议:HyperText Transfer Protocol,超文本传输协议,是用来规范浏览器和服务器间的数据传输.HTTP协议有1.0版本(每次响应后关闭连接)和1.1版本(每次响应后超过设置的等待时间关闭连接).
HTTP协议特点:
HTTP协议是基于请求和响应模型.有请求才有响应;响应和请求是成对存在的;
HTTP协议默认使用的80端口;
HTTP的请求部分组成:
请求行
- 请求方式:请求的方式有多种,一般常用的有GET和POST方式,默认的请求方式GET
- GET和POST的区别:
- [x] GET请求提交的参数会显示在地址栏(
请求的url?参数1=值1&参数2=值2...
),POST请求提交的参数不会显示在地址栏; - [x] GET请求提交的参数数据的大小有限制,而POST请求提交的参数没有大小的限制;
- [x] GET请求没有请求体,请求的参数跟在url后,POST请求有请求体,参数全部以键值对形式放在请求体中.
- 提交路径:html中的设置的提交路径(超链接/表单等的提交路径);
- 协议版本:使用的HTTP协议的版本(1.0或1.1).
- 请求方式:请求的方式有多种,一般常用的有GET和POST方式,默认的请求方式GET
请求头:请求头中的内容都是以键值对的形式存在,一般一个key对应一个value,同时也存在一个key对应多个value值,常用的有以下几个:
- User-Agent: 代表的是浏览器的类型,一般用于中文文件下载,不同的浏览对中文文件的编码方式不同,服务器获取到客户端的浏览器类型后,可以根据该类浏览器采用的中文文件编码方式对应的编码方法对文件进行编码,客户端接收后直接解码即可(IE浏览器采用URLEncoder编码,Firefox采用Base64编码).
- Referer:代表网页的来源,一般用于网页的防盗链接(可以限制只有本站点中的网址才能访问该站点中某些网页,不允许其他站点通过链接来访问).
- If-Modified-Since:通常与响应中的头Last-Modified一起使用查找本地缓存.
请求体:
POST请求方式提交的参数.
HTTP的响应部分组成:
响应行:
协议版本:HTTP协议的版本.
状态码:响应的描述值,常见的状态码及其含义
状态码描述:常见状态码及其描述
常见状态码 状态码描述 说明 200 OK 客户端请求成功 302 Found 重定向 304 See Other 查找本地缓存 404 Not Found 请求资源不存在 500 Internal Server Error 服务器内部错误 响应头:响应头中的内容都是以键值对的形式存在,一般一个key对应一个value,同时也存在一个key对应多个value值,常用的有以下几个:
- Last-Modified:与请求中的If-Modified-Since一起使用查找本地缓存;
- Content-Dispostion :文件下载的使用的一个头信息;
- Location:重定向的跳转的路径,和状态码302对应;
- Refresh:定时刷新/定时跳转,
"定时时间秒;url=跳转的路径"
.
响应体:针对于请求要响应到客户端浏览器显示的内容.
2. Servlet(2.5版本)
Servlet是使用Java语言进行动态网页开发的技术,其本质是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议.
Servlet可以接受客户端的请求,同时可以对请求做出响应.Servlet接口是所有基于请求响应模型的顶层接口,该接口有一个实现类是GenericServlet抽象类,GenericServlet抽象类有一个子类HttpServlet抽象类.
2.1 Servlet使用
Servlet接口定义的方法:
public void init(ServletConfig config):se