2016-09-17 23 views
3

http(ポート80)とhttps(ポート443)の両方が有効なGoアプリケーションがあります。Golang:http2とTLSハンドシェイクエラー

私は、エラーのこれらの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デバイス上)モバイルブラウザから来ている

+1

これらのクライアントがあなたのものでない場合は、無視してください。不適切な動作をするクライアント、タイムアウト、インターネット上の切断は、新しいものでも予期しないものでもありません。 – JimB

答えて

3
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.Transporthttps://golang.org/pkg/net/http/#Transportを定義し、タイムアウトの値を高く設定することで、カスタムタイムアウトを定義できます。

+0

Frederik、貴重な説明をいただきありがとうございます。これらのリクエストはすべて、AndroidブラウザやiOS端末のモバイルブラウザからのものだと考えていますが、これにはいくつかの理由がありますか?多くのありがとう –

+0

はい、モバイル接続はRTTが高く、帯域幅が小さくなり、パケット損失が増えます。 –

関連する問題