1 是对浏览器和服务器端数据传输格式的规范
2 http协议版本:
http1.0: 当浏览器和服务器连接之后,在一次连接中只能发出一个请求
http1.1:当浏览器和服务器连接之后,在一次连接中可以发出多次请求。
3 请求行 请求头 实体内容
4 /day08/first : URI: 统一资源描述符。可以描述任何文件,本地,互联网
http://localhsot:8080/day08/first:URL : 统一资源定位符,互联网(基于http协议) ,是URI的子集。
5 referer请求头只有从超链接过来的请求才有这个头
Referer: http://www.yyy.com/index.jsp -- 当前请求来自于哪里 (防止非法链接
6 编码问题
(1) name = new String(name.getBytes("iso-8859-1"),"utf-8");
(2) request.setCharacterEncoding("utf-8");
7 请求
request.getMethod()
请求资源: request.getRequestURI() / request.getRequestURL()
http协议版本: request.getProtocol();
请求头 request.getHeader("name") request.getHeaderNames()
实体内容: request.getInputStream();
reuqest.getParameter("name") 获取一个值的参数
request.getParameterValues("name") 获取多个值的参数(多选)
request.getParameterNames() 获取所有参数名称
request.getParameterMap() 获取所有参数对象
9 响应
response.setStatus(404) 设置状态码
response.setHeader("name","value") 修改响应头
response.getWriter().write() 以字符形式发送实体内容
response.getOutputStream().write() 以字节形式发送实体内容
重定向:
response.setStatus(302);
response.setHeader("location", "/day08/adv.html");
response.sendRedirect("/day08/adv.html");
刷新:
response.setHeader("refresh", "2");
response.setHeader("refresh", "3;/day01/index.html");
编码问题:
response.setContentType("text/html;charset=utf-8")
等价于response.setHeader("content-type", "text/html;charset=utf-8");。
response.setCharacterEncoding("utf-8"); 不会告诉浏览器自适应码表
下载:
response.setHeader("content-disposition", "attachment;filename="+file.getName());