请求首部:
Client-IP:客户端IP
Host: 请求的主机
Referer: 指明了请求当前资源原始资源的URL
User-Agent: 用户代理
Accept首部:
Accept: 指明服务器能发送的媒体类型
Accept-Charset: 支持使用的字符集
Accept-Encoding: 支持使用的编码方式
Accept-Language: 支持使用语言
条件式请求:
Expect: 告诉服务器能够发送哪些媒体类型
If-Modified-Since: 是否在指定时间内修改过此资源
If-None-Match:如果提供的实体标记与当前文档的实体标记不符,就获取此文档
跟安全相关请求:
Authorization: 客户端提交给服务器的认证数据,如帐号和密码
Cookie: 客户端发送给服务器身份标识
响应报文的语法格式
起始行 :<协议版本> <响应状态码> <原因短语>
响应首部:headers
主体:响应的内容
响应状态码
100-199 信息提示
200-299 成功状态码
300-399 重定向
400-499 客户端错误
500-599 服务器错误
401:认证失败
404:找不到请求的资源
403:对资源没有访问权限
响应首部
Date:消息产生的时间
Age: 响应持续时间
Server: 向客户端说明自己的程序名称和版本
ETage:不透明验证者
Location:URL备用的位置
Content-Length:实体的长度
Content-Tyep:实体的媒体类型
协商首部:
ary: 首部列表,服务器会根据列表中的内容挑一个最适用的版本发送给客户端
Accept-Ranges: 对当前资源来讲,服务器所能够接受的范围类型
跟安全相关:
WWW-Authentication:质询,即要求客户提供帐号和密码
Set-Cookie:服务器端在某客户端第一次请求时发送令牌
六、http交互过程(http/web事务)
一次Web请求响应的交互过程 (服务器的具体工作细节)
1、建立连接:接收客户端连接请求;
2、接收请求:从来自于网络的请求报文请求一次特定的资源请求;
连接的输入/输出处理结构:
单进程web服务器:启动一个进程接收请求,而且一次只处理一个请求;当处理结束后再接收并处理后续的请求;
多进程web服务器:
启动多个进程,每个进程处理一个请求,每来一个请求生成一个进程;
属于预生成模型,事先生成多个空闲子进程;进程池(线程池);
复用I/O的web服务器:一个进程响应多个请求;基于事件驱动模式实现;
复用I/O的多线程web服务器:一个进程响应n个请求;启动m个进程;同时能处理的请求数:n*m