Http协议
请求
一个http请求代表客户端浏览器向服务器发送的数据。一个完整的http请求消息,包含一个请求行,若干个消息头(请求头),换行,实体内容
请求头(消息头)包含(客户机请求的服务器主机名,客户机的环境信息等):
- User-Agent:客户机通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)
- Connection:告诉服务器,请求完成后,是否保持连接
- If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间
- Accept: 告诉服务器可以接收的文件类型
- Accept-Charset:用于告诉服务器,客户机采用的编码格式
- Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式
- Accept-Language:客户机语言环境
- Host: 客户机通过这个服务器,想访问的主机名
- Referer:客户机通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)
实体内容:
就是指浏览器端通过http协议发送给服务器的实体数据。例如:name=dylan&id=110
cookies间用:
回应
一个http响应代表服务器端向客户端回送的数据,它包括:
一个状态行,若干个消息头,以及实体内容
响应头(消息头)包含:
Allow:允许哪些请求方法,post get等
- Location:这个头配合302状态吗,用于告诉客户端找谁
- Server:服务器通过这个头,告诉浏览器服务器的类型
- Content-Encoding:告诉浏览器,服务器的数据压缩格式 gzip,deflate, sdch….
- Content-Length:告诉浏览器,回送数据的长度
- Content-Type:告诉浏览器,回送数据的类型
- Last-Modified:告诉浏览器当前资源缓存时间,只有改动时间迟于该时间的才会返回。否则304 一般与与If-Modified-Since一起用
- Refresh:告诉浏览器,隔多长时间刷新
- Content-Disposition:告诉浏览器以下载的方式打开数据。例如: context.Response.AddHeader(“Content-+ Disposition”,”attachment:filename=aa.jpg”); context.Response.WriteFile(“aa.jpg”);
Transfer-Encoding:告诉浏览器,传送数据的编码格式 - ETag:缓存相关的头,类似一个资源hash函数的存在。可以发现资源是否有变化
- Expries: 过期时间,绝对= max-age+请求时间
Cache-Control:控制浏览器缓存 如
Cache-Control: public, max-age:350000
max-age:是HTTP/1.1中的 过期时间。是个相对的值(相对于请求时间)
- Connection:响应完成后,是否断开连接。 close/Keep-Alive
- Content-Disposition
Date:告诉浏览器,服务器响应时间