看书的时候想到的问题
代理或网关会执行Connection首部规则,在将报文转发出去前,会删除Connection首部中命名的所有首部字段及Connection首部本身。那么,通过代理的报文到达服务器后,是没有Keep-Alive的,书上说哑代理才会直接转发,导致问题。
问题来了,这是不是意味着客户端所持久连接的对象是第一层的代理呢?还是说,在有代理存在的情况下(非哑代理),Keep-Alive就没办法实现了?
看书的时候想到的问题
代理或网关会执行Connection首部规则,在将报文转发出去前,会删除Connection首部中命名的所有首部字段及Connection首部本身。那么,通过代理的报文到达服务器后,是没有Keep-Alive的,书上说哑代理才会直接转发,导致问题。
问题来了,这是不是意味着客户端所持久连接的对象是第一层的代理呢?还是说,在有代理存在的情况下(非哑代理),Keep-Alive就没办法实现了?
代理实现的方式有很多种,当然有能够实现Keep-Alive的方式,不管如何实现,只要实现了Keep-Alive,那就一定是客户端与代理端进行长连接,再由代理端与服务器进行长连接。另外,哑代理就是因为代理端未实现对Connection的处理,导致客户端与服务器收到的信息与实际情况不匹配,才导致的结果。当然,并不是除了盲中继代理以外的代理都会实现Keep-Alive的处理,代理也可以直接抛弃Connection规则,永远选择不进行长连接。