许多(如果不是全部)现代浏览器都没有使用流水线HTTP请求.理论上,流水线操作应该通过减少获取网站所需的往返时间来加快请求.
根据HTTP标准,所有服务器都必须处理流水线请求,因此问题不应该是服务器上缺乏支持.
我已经看到了一些安全问题,例如,如果客户端将尽可能多的流水线请求推送到服务器性能密集的URL,忽略可能收到的任何答案,则会出现第7层DoS攻击.
这将是在服务器上关闭流水线支持的原因(违反标准),但我找不到任何理由在客户端关闭它.
但是,默认情况下,它会在Android浏览器和Chrome移动设备上启用.
为什么Chrome,Firefox,IE,Opera和Safari在桌面(有时是移动)版本中没有使用流水线式HTTP请求?关闭它背后的理由是什么?
firefox internet-explorer google-chrome http http-pipelining
HTTP2如何解决行头阻塞(HOL)问题?
这个问题在http1.1中非常频繁,但我听说HTTP2已经解决了这个问题.有人可以解释HTTP2究竟是如何解决这个问题的?
假设当我们通过HTTP请求资源时,我们得到如下所示的响应:
GET / HTTP/1.1
Host: www.google.co.in
HTTP/1.1 200 OK
Date: Thu, 20 Apr 2017 10:03:16 GMT
...
Run Code Online (Sandbox Code Playgroud)
但是,当浏览器一次请求多个资源时,如何识别哪个请求得到了哪个响应?
我无法一次发送多条消息。我已浏览 FCM 文档,但没有找到任何端点。
https://firebase.google.com/docs/cloud-messaging/send-message#send-a-batch-of-messages
headers = [
{"Authorization", "Bearer #{access_token}"},
{"Content-Type", "application/json"}
]
response =
HTTPoison.post!(
"https://fcm.googleapis.com/v1/projects/digimep-f4db3/messages:send",
Jason.encode!(payload),
headers
)
Run Code Online (Sandbox Code Playgroud)
如果你们对此有任何想法,请告诉我。