Отправка фрагментированного HTTPS-ответа с сервера Go - PullRequest
0 голосов
/ 12 ноября 2018

Следующий пример очень хорошо работает для HTTP : Отправка фрагментированного HTTP-ответа с сервера Go

Как только я добавляю TLS, я вижу, чтоответы больше не разделены на части:

func main() {
  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    flusher, ok := w.(http.Flusher)
    if !ok {
      panic("expected http.ResponseWriter to be an http.Flusher")
    }
    w.Header().Set("X-Content-Type-Options", "nosniff")
    for i := 1; i <= 10; i++ {
      fmt.Fprintf(w, "Chunk #%d\n", i)
      flusher.Flush() // Trigger "chunked" encoding and send a chunk...
      time.Sleep(500 * time.Millisecond)
    }
  })

  log.Print("Listening on localhost:8080")
  log.Fatal(http.ListenAndServeTLS(":8080", "<CERT_FILE>", "<KEY_FILE>", nil))
}

Есть идеи, почему это может быть?

1 Ответ

0 голосов
/ 12 ноября 2018
log.Infof("Protocol Version: %s", request.Proto)

Подтверждает использование HTTP / 2.0

Спасибо Vorsprung

...