《HTTP权威指南》读书笔记---第一部分

        这一部分讲1~4章,简述HTTP协议。

第1章:HTTP概述

        主要讲述HTTP如何工作的。

web客户端与服务端:web服务器上存储着内容,客户端通过HTTP协议向HTTP服务器请求响应内容。web客户端与服务端是基本组件。

资源:web服务器是web资源的宿主。静态文件(.img、.html、.avi)可以是资源,软件代码可以是资源,搜索引擎可以是资源等等。MIME用来表示数据类型,即header 头 content-type。使用URI(统一资源定位符)来标识资源,

第2章:URL与资源

URL编码:为了在URL表示不安全的字符设置了一套编码机制,原理是通过%加上十六进制来表示这些字符。比如“\” 他的ASCII码为92,92的十六进制是5c,所以“\” 在URL里表示为“%5c”。

方案格式:除了可以使用http://表示URL外,还有 file:// 用来表示文件,https:// 在http的tcp协议上加了一层ssl,比http://更安全,fcp://等等

第3章:HTTP报文

报文是在HTTP应用程序之间流动发送的数据块,数据块以文本特定格式发送。报文分为请求报文与响应报文。

报文格式:起始行首部主体三部分。起始行和首部是一段ASCII码,主体是可选的数据块,可为二进制数据也可为文本。起始行与首部用两个字符组成的CRLF分割其分别为回车符(CR,ASCII 13,\r,%0d) 和换行符(LF,ASCII 10,\n,%0a)。首部与主体以一行空白作为分割。

方法:put,delete,trace,post,get,options(服务器支持哪些方法),head

状态码:100-199信息状态码(100:表示服务器接收到请求,请客户端继续发送),200-299成功状态码,300-399重定向状态码,400-499客户端错误,500-599服务器错误

第4章:连接管理

什么是tcp?

如上图在浏览器与服务器进行80端口连接的时候就会进行TCP连接。HTTP要传输报文时,会将报文将流的形式按顺序以TCP传输,TCP收到数据后会将数据块分成一个个小段数据块以IP分组的形式通过互联网传输。TCP数据块是由一个个小的IP分组数据块组成,如下图所示。可以看到一个IP分组包含IP首部,TCP首部以及TCP数据块。TCP首部有一些标志用来进行连接检查等操作。

TCP是如何连接的?

TCP连接需要经过以下几个步骤?

  1. 客户端向服务端发送一个小的TCP分组,设置一个特殊的SYN标记表示这是一个连接请求
  2. 服务器接到请求并接受连接后会向客户端回送一个TCP分组,将SYN和ACK标志位置位表示接受连接请求
  3. 客户端接受后会回送一个确认消息,通知连接已经建立。现代的TCP栈允许在这个确认分组中发送数据。

这一过程称作TCP三次握手

TCP性能

由于HTTP是构建TCP上,所以TCP的性能直接就反映了HTTP的性能。在一个HTTP事务出现时延有以下可能:1.DNS解析域名的时间。2.TCP连接建立时延。3.HTTP请求时延。4.HTTP响应时延。其中TCP时延包括:1.TCP握手时延。2.TCP慢启动拥塞控制。3.数据聚焦的Nagle算法。4.捎带确认的TCP延迟确认算法。5.TIME_WAIT时延和端口耗尽。

其中TCP慢启动在起初会限制连接的最大速度,然后随着时间提高传输速度,以防止网络拥塞和突然过载。

还有几种方法可以提高HTTP连接性能:并行连接(通过连接多条TCP提高性能),持久连接(重用TCP连接,消除连接关闭时延),管道化连接(通过共享的TCP连接发起并发的HTTP连接),复用的连接(交替传送请求响应报文)

持久化连接即http头 connection: keep-alive。http1.0手动开启,http1.1后默认开启。

管道化连接就是持久化连接与并行连接的合并版

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值