记录在阅读《http权威指南》时一些知识点,以备后用。
URL部分
rstp://www.123.com/1.mp4 rstp下载协议
url中的ftp方案:ftp://username:[email protected]/file_name
url中的参数:参数名=值 eg:www.123.com/index.html;type=value
url中的查询:http://www.123.com/...?item=123
url中的片段:http://www.123.com/index.html#drills
关于片段的说明:浏览器只请求index.html中的drills片段,但是服务端只处理一个完整的请求,仍然返回整个index.html。浏览器在解析的时候会从drills处显示给用户。即,片段之对客户端生效。
url安全的方法:GET、HEAD
GET方法: 请求服务器发送某个资源
HEAD方法: 服务器只返回请求的头部
PUT方法: 向服务器写入文档
POST方法: 向服务器提交表单(请求主体部分即表单中需要提交的内容)
TRACE方法:客户端收到的响应报文中,会包含服务端最终受到的请求报文(客户端发送的请求报文可能在经过防火墙时被修改,然后才到达服务端。这样,服务端会将经过防火墙修改后的请求一并返回给客户端)
OPTIONS方法:查询服务端所支持的方法,服务端会返回所支持的方法的名称
DELETE方法: 请求服务器删除url中指定的资源
HTTP报文
请求报文、响应报文(起始行,首部、主体)
If-Modified-Since:只读取某时间之后被修改过的文档
304 NOT Modified:最近资源未被修改
HTTP连接
http连接建立:1、dns解析url(主机+端口号)
2、浏览器-服务器建立tcp连接
3、浏览器发送请求
4、服务端返回请求,浏览器接收
5、关闭连接
tcp三次握手: 1、C--------SYN------>S
2、C<----SYN+ACK--S
3、C-------ACK------ >S(在最后一起握手时,可以带上请求数据)
串行连接:请求一个页面时(一个页面包括图片,css,js等),每个http请求顺序进行
并行连接:请求一个页面时(一个页面包括图片,css,js等),每个http请求同时并发进行(web服务器可能 会限制每个客户端同时建立连接的个数)
持久连接:http连接请求完成后,依然保持该连接打开状态,下次请求时,无需重新建立连接(keep- alive/persistent)。如果服务器支持持久连接,响应报文首部会包含:connection:Keep-Alive字 段
Keep-Alive:max=5,timeout=120表示:服务端还可以为另外5个事务保持连接打开状态, 或者打开状态保持到连接空闲了2分钟以后。
如果浏览器希望本次请求的建立的连接一直保持下去,会在请求的首部包含connection:Keep- Alive字段,服务器若返回connection:Keep-Alive字段,则表明同意继续保持该连接打开状 态。
HTTP/1.1的持久连接:http/1.1默认开启持久连接。如果要关闭连接,需要在报文首部添加: Connection:close字段。