Gunakan HTTP/2 dengan server web ASP.NET Core Kestrel
HTTP/2 tersedia untuk aplikasi ASP.NET Core jika persyaratan dasar berikut terpenuhi:
- Sistem operasi
- Windows Server 2016/Windows 10 atau yang lebih baru‡
- Linux dengan OpenSSL 1.0.2 atau yang lebih baru (misalnya, Ubuntu 16.04 atau yang lebih baru)
- macOS 10.15 atau yang lebih baru
- Kerangka kerja target: .NET Core 2.2 atau yang lebih baru
- Koneksi Negosiasi Protokol Lapisan Aplikasi (ALPN)
- TLS 1.2 atau koneksi yang lebih baru
Kestrel‡ memiliki dukungan terbatas untuk HTTP/2 di Windows Server 2012 R2 dan Windows 8.1. Dukungan terbatas karena daftar rangkaian cipher TLS yang didukung yang tersedia pada sistem operasi ini terbatas. Sertifikat yang dihasilkan menggunakan Elliptic Curve Digital Signature Algorithm (ECDSA) mungkin diperlukan untuk mengamankan koneksi TLS.
Jika koneksi HTTP/2 dibuat, HttpRequest.Protocol melaporkan HTTP/2
.
Dimulai dengan .NET Core 3.0, HTTP/2 diaktifkan secara default. Untuk informasi selengkapnya tentang konfigurasi, lihat bagian Kestrel Batas HTTP/2 dan ListenOptions.Protocols .
Fitur HTTP/2 tingkat lanjut
Fitur HTTP/2 tambahan dalam Kestrel mendukung gRPC, termasuk dukungan untuk trailer respons dan mengirim bingkai reset.
Trailer
Http Trailer mirip dengan Header HTTP, kecuali dikirim setelah isi respons dikirim. Untuk IIS dan HTTP.sys, hanya trailer respons HTTP/2 yang didukung.
if (httpContext.Response.SupportsTrailers())
{
httpContext.Response.DeclareTrailer("trailername");
// Write body
httpContext.Response.WriteAsync("Hello world");
httpContext.Response.AppendTrailer("trailername", "TrailerValue");
}
Dalam kode contoh sebelumnya:
SupportsTrailers
memastikan bahwa trailer didukung untuk respons.DeclareTrailer
menambahkan nama trailer yang diberikan keTrailer
header respons. Mendeklarasikan trailer respons bersifat opsional, tetapi disarankan. JikaDeclareTrailer
dipanggil, harus sebelum header respons dikirim.AppendTrailer
menambahkan trailer.
Reset
Reset memungkinkan server untuk mengatur ulang permintaan HTTP/2 dengan kode kesalahan tertentu. Permintaan reset dianggap dibatalkan.
var resetFeature = httpContext.Features.Get<IHttpResetFeature>();
resetFeature.Reset(errorCode: 2);
Reset
dalam contoh kode sebelumnya menentukan INTERNAL_ERROR
kode kesalahan. Untuk informasi selengkapnya tentang kode kesalahan HTTP/2, kunjungi bagian kode kesalahan spesifikasi HTTP/2.
HTTP/2 tersedia untuk aplikasi ASP.NET Core jika persyaratan dasar berikut terpenuhi:
- Sistem operasi†
- Windows Server 2016/Windows 10 atau yang lebih baru‡
- Linux dengan OpenSSL 1.0.2 atau yang lebih baru (misalnya, Ubuntu 16.04 atau yang lebih baru)
- Kerangka kerja target: .NET Core 2.2 atau yang lebih baru
- Koneksi Negosiasi Protokol Lapisan Aplikasi (ALPN)
- TLS 1.2 atau koneksi yang lebih baru
†HTTP/2 akan didukung di macOS dalam rilis mendatang. Kestrel‡ memiliki dukungan terbatas untuk HTTP/2 di Windows Server 2012 R2 dan Windows 8.1. Dukungan terbatas karena daftar rangkaian cipher TLS yang didukung yang tersedia pada sistem operasi ini terbatas. Sertifikat yang dihasilkan menggunakan Elliptic Curve Digital Signature Algorithm (ECDSA) mungkin diperlukan untuk mengamankan koneksi TLS.
Jika koneksi HTTP/2 dibuat, HttpRequest.Protocol melaporkan HTTP/2
.
Dimulai dengan .NET Core 3.0, HTTP/2 diaktifkan secara default. Untuk informasi selengkapnya tentang konfigurasi, lihat bagian Kestrel Batas HTTP/2 dan ListenOptions.Protocols .
Fitur HTTP/2 tingkat lanjut
Fitur HTTP/2 tambahan dalam Kestrel mendukung gRPC, termasuk dukungan untuk trailer respons dan mengirim bingkai reset.
Trailer
Http Trailer mirip dengan Header HTTP, kecuali dikirim setelah isi respons dikirim. Untuk IIS dan HTTP.sys, hanya trailer respons HTTP/2 yang didukung.
if (httpContext.Response.SupportsTrailers())
{
httpContext.Response.DeclareTrailer("trailername");
// Write body
httpContext.Response.WriteAsync("Hello world");
httpContext.Response.AppendTrailer("trailername", "TrailerValue");
}
Dalam kode contoh sebelumnya:
SupportsTrailers
memastikan bahwa trailer didukung untuk respons.DeclareTrailer
menambahkan nama trailer yang diberikan keTrailer
header respons. Mendeklarasikan trailer respons bersifat opsional, tetapi disarankan. JikaDeclareTrailer
dipanggil, harus sebelum header respons dikirim.AppendTrailer
menambahkan trailer.
Reset
Reset memungkinkan server untuk mengatur ulang permintaan HTTP/2 dengan kode kesalahan tertentu. Permintaan reset dianggap dibatalkan.
var resetFeature = httpContext.Features.Get<IHttpResetFeature>();
resetFeature.Reset(errorCode: 2);
Reset
dalam contoh kode sebelumnya menentukan INTERNAL_ERROR
kode kesalahan. Untuk informasi selengkapnya tentang kode kesalahan HTTP/2, kunjungi bagian kode kesalahan spesifikasi HTTP/2.
HTTP/2 tersedia untuk aplikasi ASP.NET Core jika persyaratan dasar berikut terpenuhi:
- Sistem operasi†
- Windows Server 2016/Windows 10 atau yang lebih baru‡
- Linux dengan OpenSSL 1.0.2 atau yang lebih baru (misalnya, Ubuntu 16.04 atau yang lebih baru)
- Kerangka kerja target: .NET Core 2.2 atau yang lebih baru
- Koneksi Negosiasi Protokol Lapisan Aplikasi (ALPN)
- TLS 1.2 atau koneksi yang lebih baru
†HTTP/2 akan didukung di macOS dalam rilis mendatang. Kestrel‡ memiliki dukungan terbatas untuk HTTP/2 di Windows Server 2012 R2 dan Windows 8.1. Dukungan terbatas karena daftar rangkaian cipher TLS yang didukung yang tersedia pada sistem operasi ini terbatas. Sertifikat yang dihasilkan menggunakan Elliptic Curve Digital Signature Algorithm (ECDSA) mungkin diperlukan untuk mengamankan koneksi TLS.
Jika koneksi HTTP/2 dibuat, HttpRequest.Protocol melaporkan HTTP/2
.
Dimulai dengan .NET Core 3.0, HTTP/2 diaktifkan secara default. Untuk informasi selengkapnya tentang konfigurasi, lihat bagian Kestrel Batas HTTP/2 dan ListenOptions.Protocols .
Fitur HTTP/2 tingkat lanjut
Fitur HTTP/2 tambahan dalam Kestrel mendukung gRPC, termasuk dukungan untuk trailer respons dan mengirim bingkai reset.
Trailer
Http Trailer mirip dengan Header HTTP, kecuali dikirim setelah isi respons dikirim. Untuk IIS dan HTTP.sys, hanya trailer respons HTTP/2 yang didukung.
if (httpContext.Response.SupportsTrailers())
{
httpContext.Response.DeclareTrailer("trailername");
// Write body
httpContext.Response.WriteAsync("Hello world");
httpContext.Response.AppendTrailer("trailername", "TrailerValue");
}
Dalam kode contoh sebelumnya:
SupportsTrailers
memastikan bahwa trailer didukung untuk respons.DeclareTrailer
menambahkan nama trailer yang diberikan keTrailer
header respons. Mendeklarasikan trailer respons bersifat opsional, tetapi disarankan. JikaDeclareTrailer
dipanggil, harus sebelum header respons dikirim.AppendTrailer
menambahkan trailer.
Reset
Reset memungkinkan server untuk mengatur ulang permintaan HTTP/2 dengan kode kesalahan tertentu. Permintaan reset dianggap dibatalkan.
var resetFeature = httpContext.Features.Get<IHttpResetFeature>();
resetFeature.Reset(errorCode: 2);
Reset
dalam contoh kode sebelumnya menentukan INTERNAL_ERROR
kode kesalahan. Untuk informasi selengkapnya tentang kode kesalahan HTTP/2, kunjungi bagian kode kesalahan spesifikasi HTTP/2.
ASP.NET Core
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk