Fungsi HttpDeclarePush (http.h)
Mendeklarasikan hubungan sumber daya-ke-subsumber daya yang akan digunakan untuk dorongan server HTTP. HTTP.sys kemudian melakukan dorongan server HTTP 2.0 untuk sumber daya yang diberikan, jika protokol, koneksi, klien, dan kebijakan yang mendasar memungkinkan operasi pendorongan.
Sintaks
HTTPAPI_LINKAGE ULONG HttpDeclarePush(
[in] HANDLE RequestQueueHandle,
[in] HTTP_REQUEST_ID RequestId,
[in] HTTP_VERB Verb,
[in] PCWSTR Path,
[in, optional] PCSTR Query,
[in, optional] PHTTP_REQUEST_HEADERS Headers
);
Parameter
[in] RequestQueueHandle
Handel ke antrean permintaan HTTP.sys yang dikembalikan fungsi HttpCreateRequestQueue .
[in] RequestId
Pengidentifikasi buram dari permintaan yang mendeklarasikan operasi pendorongan. Permintaan harus berasal dari handel antrean yang ditentukan.
[in] Verb
Kata kerja HTTP yang digunakan untuk operasi pendorongan. Operasi pendorongan HTTP.sys hanya mendukung HttpVerbGET dan HttpVerbHEAD.
[in] Path
Bagian jalur URL untuk sumber daya yang didorong.
[in, optional] Query
Bagian kueri URL untuk sumber daya yang didorong. String ini tidak boleh menyertakan tanda tanya utama (?).
[in, optional] Headers
Header permintaan untuk operasi pendorongan.
Anda tidak boleh menyediakan header Host, karena HTTP.sys secara otomatis menghasilkan informasi Host yang benar. HTTP.sys tidak mendukung operasi pendorongan lintas asal, jadi HTTP.sys memberlakukan dan menghasilkan informasi Host yang cocok dengan permintaan asli yang dimulai klien.
Permintaan push tidak diizinkan untuk memiliki badan entitas, sehingga Anda tidak dapat menyertakan header Content-Length bukan nol atau header Transfer-Encoding apa pun.
Nilai kembali
Jika fungsi berhasil, fungsi akan mengembalikan NO_ERROR.
Jika fungsi gagal, fungsi mengembalikan kode kesalahan sistem yang ditentukan dalam WinError.h.
Keterangan
Anda harus memanggil HttpDeclarePush sebelum mengirim byte respons apa pun yang akan menyebabkan klien menemukan subsumber daya itu sendiri. Kegagalan untuk mengamati urutan ini menghasilkan perlombaan antara server yang mendorong sumber daya dan klien yang mengambil sumber daya, yang dapat membuang bandwidth. Aplikasi server hanya boleh menggunakan HttpDeclarePush untuk mendorong sumber daya bahwa aplikasi server sangat yakin diperlukan dan belum di-cache oleh klien. Jika aplikasi server mendorong sumber daya lain, penggunaan bandwidth dan CPU yang tidak perlu dapat terjadi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2016 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | http.h |
Pustaka | Httpapi.lib |
DLL | Httpapi.dll |