Method(方法):
GET:
HAED:
POST:
PUT:
DELETE:请求删除服务器上制定的文档;
TRACE:追踪请求到达服务器中间经过的代理服务器;
OPTIONS:请求服务器返回对制定资源支持使用的请求方法;
协议查看或分析工具:
tcpdump、tshark、wireshark
status(状态码):
1xx:100-101,信息提示
2xx:200-206,成功类的信息
3xx:300-305,重定向
4xx:400-415,错误类信息,客户端错误
5xx:500-505,错误类信息,服务器端错误
常用的状态码:
200:成功,请求的所有数据通过香烟报文的entity-body部分发送;ok
301:请求的URL指向的资源已经被删除,但在响应报文中通过首部location指明了资源现在所处的新位置;Moved Permnently
302:与301相似,但是响应报文中通过location指明资源现在所处临时新位置;Found
304:客户端发出了条件式请求,但服务器上的资源未曾发送改变,则通过响应次状态码通知客户端:Not Modified;
401:需要输入账号和密码认证方能访问资源,Unauthorized
403:请求被禁止,Forbidden
404:服务器无法找到客户端请求的资源;Not Found
500:服务器内部错误;Internal Server Error
502:代理服务器从后端服务器收到了一条伪响应;Bad Gateway
Headers:
格式:
Name:value
首部的分类:
通用首部
请求首部
响应首部
实体首部
扩展首部
通用首部:
Date:报文的创建时间
Connection:连接状态, 如keep-alive,close
Via:显示报文经过的中间节点 经由
Cache-Control:控制缓存的生效机制
Praagma:
请求首部:
Accept:通知服务器自己可接受的媒体类型;
Accept-Charset:字符集
Accept-Encoding:接受编码格式,如gzip
Accept-Language:接受的语言
Client-IP:
Host:请求的服务器名称和端口号
Referer:包含当前正在请求的资源的上一级资源
User-Agent:客户端代理
条件式请求首部:
Expect :
If-Modified-Since:自从指定的时间之后,请求的资源十分发生过修改
If-Unmodified-Since:
If-None-Match:本地缓存中存储的文档的ETag标签是否无服务器文档的Tag匹配
If-Match:
安全请求首部:
Authorization:向服务器发送认证信息,如账号和密码
Cookie:客户端向服务器发送cookie
Cokkie2
代理请求首部:
Proxy-Authorization:向代理服务器认证
响应首部:
信息性:
Age:响应持续时长
Server:服务器程序软件名称和版本
协商首部:某资源有多种表示方法是使用
Accept-Ranges:服务器可接受的请求方位类型
Vary:服务器查看的其他首部列表;
安全响应首部:
Set-Cookie:向客户端设置cookie
Set-Cookie:
WWW-Authenticate:来自服务器对客户端的质询认证表单
实体首部:
Allow:列出对此实体可使用的请求方法
Location:告知客户端真正实体位于何处
Content-Eending:内容的编码格式
Content-Language:
Content-Length:主体的长度
Content-Location:实体真正的所处位置
Content-Type:主体的对象类型
缓存相关:
ETag:实体的扩展标签
Expires:实体的过期时间
Last-Modified:最后一次修改的时间
Stateless:无状态协议
http协议:
协议版本:
http/0.9:原型版本,功能简陋
http/1.0:cache,MIME,method
MIME:Multipurpose Internet Mail Extestion
method:GET,POST,HEAD,PUT,DELETE,TRACE,OPTIONS
http/1.1:增强了缓存功能;
Google spdy
http/2.0:
去读rfc
工作模式:
http请求报文:http request
http响应报文:http response
一次http事务:请求<-->响应
web资源:web resource
静态资源(无须服务端做出额外处理):.jpg,.png,.gif,.html,txt,.js,.css,.mp3,.avi
动态资源(服务端需要通过执行程序做出处理,发送给客户端的是程序的运行结果):.php,.jsp
注意:一个页面中展示的资源可能有多个;每个资源都需要单独请求;
资源的表示机制:URL
Uniform Resource Locator:用于描述服务器某特定资源的位置;
例如:http://www.sina.com.cn/index.html
Scheme://Server[:Port][/PATH/TO/SOME_RESOURCE]
一次完整的http请求处理过程:
(1)建立或处理连接:接收请求或拒绝请求;
(2)接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程;
(3)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息;
(4)访问资源:获取请求报文中请求的资源; 发生磁盘IO,内核 系统调用
(5)构建响应报文;
(6)发送响应报文;
(7)记录日志;记录日志,好做行为分析
接收请求的模型: