Membawa anda memahami modul HTTP secara mendalam
Artikel ini akan membantu anda mempelajari tentang modul http dan meletakkan asas untuk menulis antara muka saya harap ia akan membantu anda!
1.
Apakah pelayan web?
Apabila aplikasi (klien) memerlukan sumber tertentu, ia boleh meminta sumber melalui Http ke pelayan; >
1.1 Pengalaman pertama dengan pelayan
http.createServer akan mengembalikan objek pelayan
- Lapisan bawah sebenarnya menggunakan objek Pelayan baharu langsung
Objek permintaan merangkum semua maklumat yang dihantar oleh klien ke pelayan kami
URL permintaan ini, pelayan perlu memprosesnya secara berbeza mengikut URL yang berbeza;
- Kaedah permintaan permintaan ini, seperti parameter yang diluluskan dalam permintaan GET dan POST Kaedah pemprosesan adalah berbeza;
- Tajuk permintaan ini juga akan membawa beberapa maklumat, seperti maklumat pelanggan, format untuk menerima data, format pengekodan yang disokong, dll...
- Permintaan am:
1.3.1 permintaan-url
Apabila pelanggan menghantar permintaan, ia akan meminta data yang berbeza, dan kemudian alamat permintaan yang berbeza akan dihantar masuk. Pelayan perlu membuat respons yang berbeza berdasarkan alamat permintaan yang berbeza.
Jika alamat permintaan pengguna turut membawa beberapa parameter tambahan, bagaimanakah kita harus menghuraikannya? Kita boleh menggunakan modul url. Antaranya, modul url menyediakan alatan utiliti untuk pemprosesan dan penghuraian URL Import url const url = require('url')Andaikan data permintaan kami ialah:
Hasil konsol menghuraikan url ialah:
Nama laluan ialah laluan terakhir yang perlu kita perolehi. Tujuan kami adalah untuk mendapatkan nama pengguna dan kata laluan secara berasingan dalam pertanyaan.
const qs = require('querystring');
const http = require("http")const url = require('url')const qs = require('querystring')// 1. 创建服务器const server = http.createServer((req, res) => { // 使用内置模块 const{ pathname,query } = url.parse(req.url) if(pathname === '/login'){ console.log(query); console.log(qs.parse(query)); const { username, password } = qs.parse(query) console.log(username,password); res.end('请求结束') }});// 2. 设置端口号并启动服务器server.listen(8888,'0.0.0.0',()=>{ console.log("服务器启动成功~");})
Dalam spesifikasi Restful (gaya reka bentuk), kita harus menggunakan kaedah permintaan yang berbeza untuk menambah, memadam, mengubah suai dan menyemak data:
DAPATKAN: data pertanyaan ;
- POST: buat data baharu;
- PATCH: kemas kini data; kaedah) untuk pemprosesan yang berbeza.
- Andaikan berikut ialah data permintaan JSON kami dalam kandungan ->
✅ Output konsol
jenis kandungan ialah jenis data yang dibawa dalam permintaan ini:
application/json bermaksud jenis json;
**panjang kandungan: **Saiz dan panjang fail
- kekal-hidup:
-
- http adalah berdasarkan protokol TCP, tetapi ia biasanya terganggu serta-merta selepas permintaan dan respons; Tambah sambungan: kekalkan dalam pengepala permintaan ② Pelayan perlu menambah sambungan: keey-alive dalam pengepala respons ③ Apabila pelanggan membuat permintaan sekali lagi, sambungan yang sama akan digunakan, dan pihak langsung akan mengganggu sambungan;
- Dalam http1.1, semua sambungan lalai kepada sambungan: keep-alive: ① Pelayan web yang berbeza akan mempunyai masa keep-alive yang berbeza ② Lalai dalam Node ialah 5s
- **pengekodan terima: **Maklumkan pelayan bahawa format pemampatan fail yang disokong oleh klien Contohnya, fail js boleh dikodkan menggunakan gzip, sepadan dengan fail .gz
**terima: **. Maklumkan pelayan bahawa klien boleh diterima Jenis format fail; 🎜>
1.4.1 objek tindak balas-tindak balas
Jika kami ingin membalas pelanggan dengan data hasil, kami boleh berbuat demikian dalam dua cara: Kaedah tulis: Kaedah ini menulis data secara langsung, tetapi tidak menutup strim
kaedah tamat: Kaedah ini menulis data terakhir dan menutup strim selepas menulis; >Nota: Jika kami tidak membuat panggilan tamat dan tutup, pelanggan akan menunggu keputusan.
1.4.2 kod respons-respon- Kod Status HTTP (Kod Status Http) ialah kod angka yang digunakan untuk mewakili status respons Http:
Senarai kod status http
Kategori - Frasa sebab
1xx Bermaklumat (Kod status maklumat) Permintaan yang diterima sedang diproses 2xx Kejayaan (kod status kejayaan) Permintaan Normal pemprosesan selesai 3xx Pengarah semula Operasi tambahan diperlukan untuk melengkapkan permintaan tr>4xx Ralat pelanggan Ralat permintaan pelanggan, pelayan tidak boleh memproses permintaan 5xx Ralat Pelayan Ralat pelayan dalam memproses permintaan - Kod respons biasa:
- Kod status
- res.writeHead: Tulis pengepala dan status pada masa yang sama
-
Status perihalan
|
||
---|---|---|
200 | OK | Permintaan telah berjaya. Biasanya digunakan untuk permintaan GET dan POST |
400 | Permintaan Buruk | Permintaan klien mempunyai ralat sintaks dan pelayan tidak dapat memahami | td>
401 | Tidak dibenarkan | Permintaan memerlukan pengesahan pengguna |
403 | Dilarang | Pelayan memahami permintaan daripada klien, tetapi enggan melaksanakan permintaan |
404 | Tidak Ditemui | Pelayan tidak dapat mencari sumber (halaman web) berdasarkan permintaan pelanggan. Melalui kod ini, pereka laman web boleh menyediakan halaman yang diperibadikan untuk "Sumber yang anda minta tidak ditemui" |
500 | Ralat Pelayan Dalaman | Ralat pelayan dalaman, tidak dapat melengkapkan permintaan |
503 | Perkhidmatan Tidak Tersedia | Pelayan terputus buat sementara waktu kerana kepada beban berlebihan atau penyelenggaraan sistem Tidak dapat mengendalikan permintaan pelanggan. Tempoh kelewatan boleh disertakan dalam maklumat pengepala Retry-After pelayan |
状态代码 | 描述状态 | 说明 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
400 | Bad Request | 客户端请求的语法错误,服务器无法理解 |
401 | Unauthorized | 请求要求用户的身份认证 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
Tetapkan kod status:
1.4.3 pengepala respons-respon
Kembalikan maklumat pengepala, terdapat dua cara utama:- res.setHeader: Tulis satu maklumat pengepala pada satu masa;
tutorial nodejs!
Atas ialah kandungan terperinci Membawa anda memahami modul HTTP secara mendalam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perkhidmatan Node yang dibina berdasarkan bukan sekatan dan dipacu peristiwa mempunyai kelebihan penggunaan memori yang rendah dan sangat sesuai untuk mengendalikan permintaan rangkaian besar-besaran. Di bawah premis permintaan besar-besaran, isu yang berkaitan dengan "kawalan memori" perlu dipertimbangkan. 1. Mekanisme kutipan sampah V8 dan had ingatan Js dikawal oleh mesin kutipan sampah

Artikel ini akan memberi anda pemahaman yang mendalam tentang memori dan pengumpul sampah (GC) enjin NodeJS V8 saya harap ia akan membantu anda!

Modul fail ialah enkapsulasi operasi fail asas, seperti membaca/menulis/membuka/menutup/memadam fail, dsb. Ciri terbesar modul fail ialah semua kaedah menyediakan dua versi **segerak** dan ** asynchronous**, dengan Kaedah dengan akhiran penyegerakan adalah semua kaedah penyegerakan, dan kaedah yang tidak semuanya adalah kaedah heterogen.

Bagaimana untuk mengendalikan muat naik fail? Artikel berikut akan memperkenalkan kepada anda cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod saya harap ia akan membantu anda!

Artikel ini akan berkongsi dengan anda alat pengurusan proses Node "pm2", dan bercakap tentang mengapa pm2 diperlukan, cara memasang dan menggunakan pm2, saya harap ia akan membantu semua orang!

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Sebab mengapa nod tidak boleh menggunakan arahan npm adalah kerana pembolehubah persekitaran tidak dikonfigurasikan dengan betul Penyelesaiannya ialah: 1. Buka "Sistem Sifat"; 2. Cari "Pembolehubah Persekitaran" -> "Pembolehubah Sistem", dan kemudian edit persekitaran. pembolehubah; 3. Cari lokasi folder nodejs;

Gelung peristiwa ialah bahagian asas Node.js dan mendayakan pengaturcaraan tak segerak dengan memastikan bahawa utas utama tidak disekat Memahami gelung peristiwa adalah penting untuk membina aplikasi yang cekap. Artikel berikut akan memberi anda pemahaman yang mendalam tentang gelung acara dalam Node.
