Http(ポート80)とhttps(ポート443)の両方が有効になっているGoアプリケーションがあります。
私はこれらの3種類のエラーをたくさん受け続けます:
http2: server: error reading preface from client 79.49.31.60:37993: timeout waiting for client preface
http: TLS handshake error from 151.38.29.250:44235: EOF
http: TLS handshake error from 2.239.197.163:6742: read tcp x.xxx.xxx.xxx:443->2.239.197.163:6742: i/o timeout
誰かがこれらが何を指しているのか説明できますか?
注:これらのリクエストはすべてモバイルブラウザから送信されます(AndroidおよびiOSデバイス))
http2: server: error reading preface from client 79.49.31.60:37993: timeout waiting for client preface
これは、サーバーがタイムアウトする前に、クライアントがhttp2接続の序文( https://tools.ietf.org/html/rfc7540#section-3.5 )を送信できなかったことを意味します。
http: TLS handshake error from 151.38.29.250:44235: EOF
これは、サーバーとクライアントがTLSハンドシェイクを実行しているときに、サーバーが接続が閉じられていることを確認したことを意味します。これはEOFとも呼ばれます。
http: TLS handshake error from 2.239.197.163:6742: read tcp x.xxx.xxx.xxx:443->2.239.197.163:6742: i/o timeout
これは、TLSハンドシェイク中にサーバーがクライアントからの読み取りを待機している間、クライアントは接続を閉じる前に何も送信しなかったことを意味します。
@JimBが指摘したように、それらは完全に正常に表示されます。タイムアウトがすぐに始まると思われる場合は、カスタムnet.http.Transport
を定義することでカスタムタイムアウトを定義できます: https://golang.org/pkg/net/http/#Transport 、タイムアウトに高い値を設定します。