文章目录
HTTP请求格式
一个HTTP请求分为四部分:
- 请求行
- 请求头部
- 空行
- 请求数据
1、请求行
请求行由请求方法字段、URL字段和HTTP版本字段三个字段组成,用空格分隔。
如:GET /index.html HTTP/1.1
2、请求头部
请求头部由关键字/值对组成,每一行一对,关键字和值之间用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,常用的请求头有Cookie
状态码
200——响应成功
301——永久重定向,搜索引擎将删除源地址,保留重定向地址
302——暂时重定向,重定向地址由响应头中的Location属性指定。由于搜索引擎的判定问题,较为复杂的URL容易被其他网站使用更精简的URL及302重定向劫持
400——客户端请求有语法错误,不能被服务器识别
500——服务器内部错误
Cookie
1、什么是cookie
cookie用来在浏览器端存储用户的状态信息,然后再访问后端的时候将这部分信息带回到后端。
cookie的主要内容包括:名字、值、过期时间、路径和域。
2、Cookie工作原理
- 发起请求时:浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围(由路径和域决定)大于等于将要请求的资源所在的位置,则把cookie附在请求资源的HTTP请求头上发送给服务器。
- 处理请求时:在服务端,一般会对请求头中带的cookie信息做检查(比如说登录检查),如果检查通过,才能进行实际的业务处理。
- 如果校验不通过,例如没有找到cookie或者cookie信息不正确(可能会是伪造的),跳转让其登录,登录完成之后,在响应中返回cookie信息,浏览器会根据返回的cookie信息,保存在硬盘或者内存中供下次使用。
3、Servlet中操作Cookie时常用的方法
方法 | 描述 |
---|---|
public void setDomain(String pattern) | 设置cookie的作用域,如haimeng.blog.csdn.net |
public String getDomain() | 获取cookie适用的域 |
public void setMaxAge(int expiry) | 设置cookie的过期时间(以s为单位),如果不设置会在当前session会话中持续有效 |
public int getMaxAge() | 返回cookie的最大生存周期(以s为单位),默认情况下,-1表示cookie将持续下去,直到浏览器关闭 |
public String getName() | 该方法返回cookie的名称,名称在创建后不能改变 |
public v |