Bagikan melalui


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

Lihat juga

HTTP_REQUEST_HEADERS

HTTP_VERB

HttpCreateRequestQueue