关于HTTP报文
关于请求方法: 常见的请求方法我就不多说了,这里说下Options Options方法请求Web服务器,让其告知客户端它都支持哪些方法,或者是对哪些资源有些特殊的支持。 这为客户端提供了一种手段,让客户端不用实际访问那些资源就能判断访问各种资源的最优方式。
关于请求成功状态码: 也列出常见的:
| 请求状态码和原因短语 | ||
|---|---|---|
| 200 | - | - |
| 203 | Non-Authoritative Information | 实体首部包含的信息不是来源于服务端,而是来源于资源的一份副本。如果中间节点上有一份资源副本,但无法或者没有对它所发送的与资源有关的元信息(首部)进行验证,就会出现这种情况。 |
| 204 | No Content | 响应报文中包含若干首部和一个状态行,但是没有实体的主体部分。主要用于在浏览器不转为显示新文档的情况下,对其进行更新(比如刷新一个表单元素) |
| 20 | Patial Content | 成功执行了一个部分或者Range(范围)请求。客户端可以通过一些特殊的首部来获取部分或者某个范围内的文档————这个状态码就说明请求成功了。 |
Http 的首部包括 通用首部,请求首部,响应首部
举例: 通用首部: Date 请求首部: Accept-* If-* 安全请求首部: Authorization Cookie 代理请求首部 proxy-Connection 响应请求首部: Server 协商首部: Accept-Range Vary 安全响应首部 实体首部:Content-* ETag Expires Last-Modified
关于Tcp连接管理 网络时延主要又下面几种原因:
- 如果是一个新的URL,需要通过DNS将URI中的主机名转换成一个IP地址。可能要数十秒时间。(但是现在大半部分HTTP客户端都有了小的DNS缓存,这个查询变得很快)。
- TCP的连接会有时延。
- 传输报文,服务端解析报文都需要时间。
- 回传HTTP报文也需要时间。
这些TCP的时延取决于硬件速度,网络和服务器的负载,请求响应报文的尺寸,已经客户端和服务端的距离。
性能聚焦区域
最常见的TCP相关时延,其中包括:
- TCP连接建立握手
- 慢启动拥塞控制
- 用于捎带确认的TCP延迟确认算法
TCP握手连接需要3步:
- 客户端向服务端发送一个小的TCP分组,这个分组中设置了一个SYN标记,说明这是个连接请求
- 如果服务器接受了,会进行一些计算,然后向客户端回送了一个TCP分组,这个分组中SYN ACK都被置位,说明连接请求已经被接收。
- 最后客户端向服务器发送一条确认信息,ACK被置位,通知它连接已经成功
HTTP 关闭连接
TCP连接是双向的,TCP连接的每一端都有输出连接和输入连接,在关闭连接时,先关闭输出连接总是很安全的。关闭输入的信道很危险,除非你知道另一端已经不打算传输数据了。如果另一端向你已经关闭的输入信道发送信息,操作系统就会回送两一端一条 “连接被对端重置”的报文。大部分操作系统会将这视为很严重的问题,会删除对端还没有读取的所有缓存数据。