Bagaimana untuk Menutup Permintaan HTTP untuk Pemprosesan Latar Belakang dengan Betul?

DDD
Lepaskan: 2024-10-28 15:17:02
asal
946 orang telah melayarinya

 How to Properly Close an HTTP Request for Background Processing?

Menutup Permintaan HTTP untuk Pemprosesan Latar Belakang Dengan Betul

Dalam permintaan HTTP, selalunya wajar untuk bertindak balas dengan segera semasa memproses muatan permintaan dalam latar belakang. Ini dicapai dengan mengakui permintaan dengan kod status 202 Diterima, membolehkan pelanggan meneruskan tanpa menunggu selesai tugas latar belakang.

Membalas dengan 202 Diterima

Untuk mengendalikan permintaan sedemikian dengan betul, adalah penting untuk menutup permintaan selepas menghantar pengepala 202 Accepted. Ini kerana pengembalian daripada pengendali menandakan selesainya permintaan. Oleh itu, adalah disyorkan untuk menutup permintaan secara eksplisit sebelum memulakan tugas latar belakang:

<code class="golang">func index(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusAccepted)
    go sleep()
    return // Close the request
}</code>
Salin selepas log masuk

Membalas dengan 200 OK

Apabila membalas dengan 200 OK, ia sudah memadai untuk kembali daripada pengendali, kerana pengepala HTTP akan ditetapkan secara automatik untuk menunjukkan respons yang berjaya.

<code class="golang">func index(w http.ResponseWriter, r *http.Request) {
    go sleep()
    return // Close the request
}</code>
Salin selepas log masuk

Awas

Adalah penting untuk ambil perhatian bahawa HTTP nilai permintaan dan respons tidak boleh digunakan dalam goroutine latar belakang selepas permintaan ditutup, kerana ia mungkin digunakan semula.

Atas ialah kandungan terperinci Bagaimana untuk Menutup Permintaan HTTP untuk Pemprosesan Latar Belakang dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!