Go back Node.js સાથે HTTP 1.1 સર્વર સેટ કરવું અને ટેસ્ટ કરવું /* by Tirth Bodawala - July 27, 2024 */ Uncategorized @gu જાવાસ્ક્રિપ્ટ આ ટ્યુટોરીયલમાં, અમે Node.js નો ઉપયોગ કરીને HTTP 1.1 સર્વર સેટ કરવાની પ્રક્રિયાને હાથ ધરશું. આ સર્વર સ્ટેટિક ફાઇલો સર્વ કરશે અને HTTP વિનંતિઓ અને પ્રતિક્રિયાઓને સંભાળવાની મૂળભૂત સમજ પ્રદાન કરશે. આવશ્યકતા Node.js (આયામ 20.04 અથવા વધુ) જાવાસ્ક્રિપ્ટ અને Node.js ની મૂળભૂત સમજ કદમ 1: પ્રોજેક્ટને શરૂ કરો તમારા પ્રોજેક્ટ માટે નવો ડિરેક્ટરી બનાવવાની શરૂઆત કરો અને તેને npm સાથે શરૂઆત કરો. mkdir raw-http-tutorial cd raw-http-tutorial npm init -y આ package.json ફાઈલ જનરેટ કરશે. તમે આને નીચેની સામગ્રી સાથે અપડેટ કરી શકો છો: package name: (tmp) raw-http-tutorial version: (1.0.0) description: Demonstrating Raw HTTP requests and response entry point: (index.js) src/server/http1.js test command: git repository: keywords: author: license: (ISC) આ package.json ફાઈલ જનરેટ કરશે. તમે આને નીચેની સામગ્રી સાથે અપડેટ કરી શકો છો: { "name": "raw-http-tutorial", "version": "1.0.0", "description": "Demonstrating Raw HTTP requests and response", "main": "src/server/http1.js", "type": "module", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "Tirth Bodawala <[email protected]>", "license": "MIT", "devDependencies": {}, "dependencies": {} } કદમ 2: જરૂરી પૅકેજઝ ઇન્સ્ટોલ કરો સર્વર બનાવતા પહેલાં, જરૂરી પૅકેજઝ ઇન્સ્ટોલ કરો: npm install mime-types npm install --save-dev @types/node @types/mime-types કદમ 3: SSL સર્ટિફિકેટ્સ જનરેટ કરો HTTPS માટે SSL/TLSની જરૂર છે. એક સ્વ-સ્વીકૃત સર્ટિફિકેટ જનરેટ કરવા માટે OpenSSL નો ઉપયોગ કરો: mkdir ssl cd ssl openssl req -x509 -newkey rsa:2048 -nodes -keyout server-key.pem -out server-cert.pem -days 365 જરૂરી માહિતી નીચે મુજબ ભરો: દેશ નામ (IN) રાજ્ય અથવા પ્રાંતનું નામ (ગુજરાત) સ્થાનિક નામ (વડોદરા) સંગઠન નામ (Atyantik Technologies) સંગઠનાયીક એકમનું નામ (Development) સામાન્ય નામ (localhost) ઇમેઇલ સરનામું ([email protected]) જનરેટ થયેલા ફાઈલોને ssl નામની ડિરેક્ટરીમાં ખસેડો કદમ 4: HTTPS 1.1 સર્વર બનાવો src નામની ડિરેક્ટરી બનાવો અને તેમાં ./src/server/http1.js નામની ફાઇલ ઉમેરો નીચેની સામગ્રી સાથે: import { createServer } from 'node:https'; import { createReadStream } from 'node:fs'; import { readFileSync } from 'node:fs'; import { extname, resolve } from 'node:path'; import mime from 'mime-types'; import zlib from 'node:zlib'; const brotliOptions = { chunkSize: 32 * 1024, params: { [zlib.constants.BROTLI_PARAM_QUALITY]: 10, }, }; const httpsPort = 8080; const httpsHost = 'localhost'; // SSL options const options = { key: readFileSync(resolve('ssl', 'server-key.pem')), cert: readFileSync(resolve('ssl', 'server-cert.pem')) }; const html = readFileSync(resolve('src', 'index.html'), { encoding: 'utf-8' }); const httpsServer = createServer(options, async (req, res) => { const filePath = resolve(req.url.substring(1)); if (req.url === '/') { res.writeHead(200, { 'Content-Type': 'text/html', }); res.write(html); res.end(); return; } try { const mimeType = mime.lookup(extname(filePath)) || 'application/octet-stream'; res.writeHead(200, { 'Content-Type': mimeType, 'Content-Encoding': 'br' }); const readStream = createReadStream(filePath); const brotliStream = zlib.createBrotliCompress(brotliOptions); readStream.pipe(brotliStream).pipe(res); } catch (error) { console.log(error); res.writeHead(404, { 'Content-Type': 'text/plain' }); res.write('File not found'); res.end(); } }); httpsServer.listen(httpsPort, httpsHost, () => { console.log(`HTTPS server listening on: https://${httpsHost}:${httpsPort}`); }); કદમ 5: એક HTML ફાઇલ બનાવો index.htmlડિરેક્ટરીમાં src નામની ફાઇલ બનાવો નીચેની સામગ્રી સાથે: <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Image Grid</title><style>body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0; } .grid-container { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; width: 100%; height: 100%; padding: 10px; box-sizing: border-box; } .grid-item { position: relative; width: 100%; padding-top: 5%; overflow: hidden; } .grid-item img { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; object-fit: cover; transform: translate(-50%, -50%); } </style></head><body><div class="grid-container"><div class="grid-item"><img src="/cars/1.jpg" alt="Image 1"></div><div class="grid-item"><img src="/cars/2.jpg" alt="Image 2"></div><div class="grid-item"><img src="/cars/3.jpg" alt="Image 3"></div><div class="grid-item"><img src="/cars/4.jpg" alt="Image 4"></div><div class="grid-item"><img src="/cars/5.jpg" alt="Image 5"></div><div class="grid-item"><img src="/cars/6.jpg" alt="Image 6"></div><div class="grid-item"><img src="/cars/7.jpg" alt="Image 7"></div><div class="grid-item"><img src="/cars/8.jpg" alt="Image 8"></div><div class="grid-item"><img src="/cars/9.jpg" alt="Image 9"></div><div class="grid-item"><img src="/cars/10.jpg" alt="Image 10"></div></div></body></html> HTTPS સર્વર કોડનું વ્યાખ્યાન આવશ્યક મૉડ્યુલ્સ ઇમ્પોર્ટ કરો: અમે આવશ્યક મૉડ્યુલ્સ જેમ કે: createServer થી node:https, createReadStream, readFileSync થી node:fs, extname, resolve થી node:pathઅને mime થી mime-types. zlib wpml_ignored_tag > મૉડ્યુલનો ઉપયોગ પ્રતિસાદોને દબાવવા માટે થાય છે. Brotli વિકલ્પોને વ્યાખ્યાયિત કરો: અમારા પ્રદર્શનને સુધારવા માટે Brotli કૉમ્પ્રેશન વિકલ્પોને વ્યાખ્યાયિત કરીએ છીએ. સર્વર પોર્ટ અને હોસ્ટ સેટ કરો: અમે પોર્ટ અને હોસ્ટ ની ચોક્કસતા કરીએ છીએ જ્યાં સર્વર સાંભળશે. SSL વિકલ્પો: SSL વિકલ્પો, જેમાં કી અને સર્ટિફિકેટ શામેલ છે,ssl ડિરેક્ટરીમાંથી વાંચવામાં આવે છે. HTTPS સર્વર બનાવો: અમે createServer પદ્ધતિનો ઉપયોગ કરીને HTTPS સર્વર બનાવીએ છીએ. જો વિનંતી URL / હોય, તો સર્વર index.html ની સામગ્રી સાથે પ્રતિસાદ આપે છે. અન્ય URLs માટે, સર્વર વિનંતી કરેલી ફાઇલ સર્વ કરવાનો પ્રયાસ કરે છે. પ્રતિસાદ Brotli નો ઉપયોગ કરીને દબાવવામાં આવે છે. સર્વર શરૂ કરો: સર્વર નિર્દિષ્ટ પોર્ટ અને હોસ્ટ પર સાંભળે છે, અને તે શરૂ થતાં અને કાર્યરત થતા સંદેશા લોગ કરે છે. કદમ 6: સર્વર ચલાવો સર્વર શરૂ કરવા માટે, ચલાવો: node src/server/http1.js તમે એક સંદેશો જોઈ શકશો જે સર્વર ચલાઈ રહ્યો છે તે દર્શાવે છે. તમારું બ્રાઉઝર ખોલો અને https://localhost:8081 પર જાઓ જેથી તમે સર્વર કાર્યરત જોઈ શકો. નોંધો કે તમારે સ્વ-હસ્તાક્ષરિત સર્ટિફિકેટ સ્વીકારવું પડશે. આગળના પગલા: હવે તમે સફળતાપૂર્વક HTTPS 1.1 સર્વર સ્થાપિત અને પરીક્ષણ કરી લીધું છે, તમે Node.js સાથે HTTP/2 સર્વર સ્થાપિત કરવા આગળ વધી શકો છો. વિગતવાર માર્ગદર્શન માટે અહીં જુઓ: HTTP/2 સર્વર સાથે Node.js ને સ્થાપિત અને પરીક્ષણ કરવું.