http请求基本过程
请求报文实例
//报文信息
GET /HTTP/1.1
HOST www.baidu.com
//可选首部
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
//请求内容
username=luqihua&password=123(示例)
响应报文示例
//报文信息
HTTP/1.1 200 OK
//可选首部
Content-Length:78
Content-Type:text/html;charset=UTF-8
Date:Sat, 05 Aug 2017 06:51:43 GMT
Set-Cookie:username=luqihua; Max-Age=3600; Expires=Sat, 05-Aug-2017 07:51:43 GMT; Domain=192.168.70.56; Path=loginServlet
//响应实体数据
<html>
....
</html>
http协议中的URI
http协议通过URI定位互联网上的额资源,当客户端请求访问资源时,URI必须作为请求报文的一部分
http协议中的方法
- GET
get请求用于访问已被URI识别的资源。指定资源经过服务器解析后返回响应内容。如果访问的是文本,图片之类的资源,将原样返回;如果是像CGI(Common Gateway Interface 网关接口)那样的程序,则返回经过执行后的结果。
- POST
post 方法用来传输实体的主体,post与get相似,但是post一般不是用来获取响应的主体内容,而是用来将数据实体传输到服务器
- HEAD
head方法类似于get方法,但并不返回报文主体部分,而是返回首部信息。一般用于确认URI的有效性以及资源更新的日期等
http支持的方法 ( 方法区分大小写,必须使用大写字母 )
方法 | 说明 | 支持的协议 |
---|---|---|
GET | 获取资源 | 1.0 1.1 |
POST | 传输实体主体 | 1.0 1.1 |
PUT | 传输文件 | 1.0 1.1 |
HEAD | 获得响应报文首部 | 1.0 1.1 |
DELETE | 删除文件 | 1.0 1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRACE | 追踪路径 | 1.1 |
CONNECT | 要求用隧道协议链接代理 | 1.1 |
LINK | 建立和资源之间的联系 | 1.0 |
UNLINK | 断开连接关系 | 1.0 |
http中的cookie
http是无状态的协议,协议本身不对发生过的请求和响应的状态进行管理,这样做的好处是减少服务器CPU以及内存的消耗。但是无状态协议在实际应用中存在一些问题,比如需要有登录认证的web页面之间的跳转,由于无法对之前的请求和响应进行管理,每一次的页面跳转都需要再次登录,这显然是没有必要的操作。为了解决这个问题,引入了Cookie技术。
Cookie是一串数据,存在于首部中。Cookie会根据服务器发送的响应报文中的Set-Cookie首部字段信息,通知客户端保存Cookie。当下次客户端再次往该服务器发送请求时,客户端会将保存在本地的Cookie加入到请求报文的首部字段Cookie中,这样服务器就可以根据Cookie的信息进行身份的认证等操作。