网络传输 http tcp

HTTP请求头信息 Connection

请求头信息 Connection

Connection 头(header) 决定当前的事务完成后,是否会关闭TCP网络连接
可设定值:

Connection: keep-alive / close

基于HTTP传输协议版本:

HTTP1.0 请求的默认值 为 close
HTTP1.1 请求的默认值 为 keep-alive

HTTP是无状态协议,TCP在请求时候建立,完成数据接收后断开,好处是节省服务器内存
出现的意义:
在很多情况下,服务器真正“处理”事务的时间并不长。
绝大部分时间都被消耗在了建立TCP连接、传输请求和响应报文上

HTTP请求过程

图片来源

1、当你的Server内存充足时,KeepAlive=On还是Off对系统性能影响不大。
2、当你的Server上静态网页(Html、图片、Css、Js)居多时,建议打开KeepAlive 。
3、当你的Server多为动态请求(因为连接数据库,对文件系统访问较多),KeepAlive 关掉,会节省一定的内存,节省的内存正好可以作为文件系统的Cache(vmstat命令中cache一列),降低I/O压力。

一个TCP上可以连接多少个http请求

HTTP 1.1支持长连接(Persistent Connection)和请求的流水线(Pipelining)处理

请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。
例如:一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。

HTTP 1.1还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容。

结论:不断开TCP, http可以无限发送

Strict-Transport-Security

HTTP Strict Transport Security是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源,而不是HTTP
例如:访问百度的响应头信息

Strict-Transport-Security: max-age=172800

客户端通过https访问服务器,且这个服务器设置了Strict Transport Security
在请求后的过期时间内(秒),凡是访问这个域名下的请求都使用HTTPS请求。
这种设置可以防止进入钓鱼网站

MDN示例场景:
你连接到一个免费WiFi接入点,然后开始浏览网站,访问你的网上银行,查看你的支出,并且支付一些订单。很不幸,你接入的WiFi实际上是黑客的笔记本热点,他们拦截了你最初的HTTP请求,然后跳转到一个你银行网站一模一样的钓鱼网站。 现在,你的隐私数据暴露给黑客了。
Strict Transport Security解决了这个问题;只要你通过HTTPS请求访问银行网站,并且银行网站配置好Strict Transport Security,你的浏览器知道自动使用HTTPS请求,这可以阻止黑客的中间人攻击的把戏。

你可能感兴趣的:(网络传输 http tcp)