请求传递的内容分析
通过打印的res内容可见, 一次访问共发送了两个请求(request是http.IncomingMessage的一个实例)
分析第一个请求详细参数(第二个类似):
参数 | 含义(部分自己理解的) |
---|---|
_readableState | Readable对应于Java中的InputStream和Reader两个类,针对Readable设置encode编码可完成内部数据由Buffer到字符的转换。Readable Stream有两种模式,即flowing和paused模式。这两种模式对于用户而言区别在于是否需要手动调用。readableState中包含以上信息的具体状态设置信息。 |
readable | 值为true或false,指定是否读取 |
domain | 域名信息 |
_events | 绑定的事件处理 |
_eventsCount | 事件个数 |
_maxListeners | 设置的最大监听者数目 |
socket | 套接字,区分连接 |
connection | 建立连接是触发,内容即是套接字 |
httpVersionMajor | http的最大版本号 |
httpVersionMinor | http的最小版本号 |
httpVersion | http的版本号 |
complete | 是否通信完成,值为true或false |
headers | 请求头信息 |
rawHeaders | 原请求头信息 |
trailers | 请求后缀信息 |
rawTrailers | 原请求后缀信息 |
upgrade | 是否升级,值为true或false |
url | 请求的url |
method | 客户端请求的方法,get或post |
statusCode | 请求状态码 |
statusMessage | 请求状态信息 |
client | 客户端信息 |
_consuming | 消耗情况,值为true或false |
_dumped | 释放情况,值为true或false |
继续展开下一层块内容进行分析:
- readableState
参数 | 含义 |
---|---|
objectMode | 是否有数据对象模型,值为true或false |
highWaterMark | |
buffer | 缓存信息 |
length | 长度 |
pipes | 管道流 |
pipesCount | 管道数目 |
flowing | flowing还是paused模式 |
ended | 是否结束,值为true或false |
endEmitted | 结束时是否有操作,值为true或false |
reading | 是否读,值为true或false |
sync | 是否异步,值为true或false |
needReadable | 是否需要读取,值为true或false |
emittedReadable | 是否执行读取操作,值为true或false |
readableListening | 是否监听读取,readableListening |
defaultEncoding | 默认字符编码 |
ranOut | |
awaitDrain | |
readingMore | 是否读取更多,值为true或false |
decoder | 解码信息 |
encoding | 编码信息 |
- socket
参数 | 含义 |
---|---|
_connecting | 是否正在连接,值为true或false |
_hadError | 是否处理错误,值为true或false |
_handle | 一个处理 |
_parent | 父信息 |
_host | 主机 |
_readableState | 读取状态 |
readable | 是否读取 |
domain | 域名信息 |
_events | 事件 |
_eventsCount | 事件个数 |
_maxListeners | 最大监听数目 |
_writableState | 写状态信息 |
writable | 是否写入 |
allowHalfOpen | 是否允许打开一半 |
destroyed | 是否被破坏 |
bytesRead | 字节读取 |
_bytesDispatched | 获取字节 |
_sockname | 套接字名称 |
_pendingData | 缀余数据 |
_pendingEncoding | 缀余数据编码 |
server | 服务器信息 |
_idleTimeout | 空闲超时设置 |
_idleNext | 下一个空闲设置 |
_idlePrev | 前一个空闲设置 |
_idleStart | 空闲开始 |
parser | 解析 |
on | 所属函数 |
_paused | 延时、暂停 |
read | 读 |
_consuming | 消耗 |
_httpMessage | http信息 |
ServerResponse | 服务器信息 |
由于socket内容很多和其他部分类似,所以这里与其他部分相似内容没有细说
- headers
参数 | 含义 |
---|---|
hosthost | 请求主机地址 |
connection | 连接状态 |
accept | 客户机所能接收的MIME类型,浏览器支持的编码和语言等信息 |
Request解析
请求报文
实例:
Request 对象在 HTTP 请求期间,检索客户端浏览器传递给服务器的值 。
语法格式: Request[.collection|property|method] (variable)
集合 | 描述 | 格式 |
---|---|---|
ClientCertificate | 存储在发送到 HTTP 请求中客户端证书中的字段值 | Request.ClientCertificate( Key[SubField] ) |
Cookies | HTTP 请求中被发送的 cookie 的值 | Request.Cookies(cookie)[(key)或.attribute] |
Form | HTTP 请求正文中表格元素的值 | Request.Form(element)[(index)或.Count] |
QueryString | HTTP 中查询字符串中变量的值 | Request.QueryString(variable)[(index)或.Count] |
ServerVariables | 预定的环境变量的值 | Request.ServerVariables (server environment variable) |
方法 | 描述 | 格式 |
---|---|---|
BinaryRead | 检索从客户端发送到服务器作为 POST 请求的一部分的数据 | Request.BinaryRead(count) |
属性 | 描述 |
---|---|
TotalBytes | 只允许读。指定客户端在请求正文中发送的字节总数 |
Response解析
响应报文
实例:
Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。
语法格式:Response.collection|property|method
集合 | 描述 | 格式 |
---|---|---|
cookie | 指定 cookie 值。可以使用该集合设置 cookie 的值。 | Response.Cookies(CookieName)[(key)或.attribute]=value。 |
方法 | 作用 | 格式 |
---|---|---|
write | Write 方法可以向发往客户端浏览器的HTML 文件中直接输出信息 | Responser.Write 内容 |
Redirect | Redirect 方法可以使浏览器从当前网页转向到其他网页 | Response.Redirect 路径 |
End | End 方法可以结束程序的运行 | Response.End |
Clear | Clear 方法用于清除缓冲区中的所有HTML输出,可以用来防止显示第二个页面时,第一个页面也显示出来。它把第一个页面从Buffer中清空了。但Clear 方法只清除响应正文而不清除响应标题。可以用该方法处理错误情况 | Response.Clear |
Flush | Flush 方法可以立即发送缓冲区中的输出。如果没有将Response.Buffer 设置为True,该方法将导致运行时错误 | Response.Flush |
AddHeader | AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除 | Response.AddHeader name, value |
AppendToLog | AppendToLog 方法向Web服务器的日志条目的末尾添加一字符串。String为要添加到日志文件中的字符串 | Response.AppendToLog String |
BinaryWrite | BinaryWrite 方法不经任何字符转换就将指定的信息写到 HTTP 输出。该方法用于写非字符串信息(如客户端应用程序所需的二进制数据) | Response.BinaryWrite data |
属性 | 描述 |
---|---|
Buffer | 缓冲一ActiveServerPage。回应只到某一页结束或Response.Flush或Response.End方法调用时才发送出去。服务器将输出送给客户端后就不能再设置Buffer属性 |
CacheControl | 指明是否Proxy服务器能缓存ActiveServerPage。缺省时,其值为FALSE |
CharSet(Charsetname) | 将字符集名称(如GB)附加到Response对象中content-type标题的后面,用来设置web服务器响应给客户端的文件字符编码 |
ContentType | 指明回应内容的类型 |
Expires | 浏览器可以缓存当前页的时间长度,以分钟为单位 |
ExpiresAbsolute | 浏览器不能再缓存当前页的日期和时间。在未到期之前,可以返回。如果未指定时间,该主页在当天午夜到期;如果未指定日期,则到当天指定时间到期 |
True/False=Response.IsClientConnected | 性为只读,指明自上次调用Response.Write之后,客户端是否仍然和服务器连接。该属性允许用户在客户端和服务器没有联接的情况下有更多的控制。 |
PICS | 用于添加网页的PICS等级 |
Status | 用来设置Web服务器要响应的状态行的值 |
参考: