Skip to content

Backend End Web Development ​

Backend Web Development āļ„āļ·āļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļĨāļ°āļ”āļđāđāļĨāļŠāđˆāļ§āļ™āļŦāļĨāļąāļ‡āļ‚āļ­āļ‡āđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āļ‹āļķāđˆāļ‡āļĢāļ§āļĄāļ–āļķāļ‡āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļąāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ, āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļšāļ™āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ, āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ API, āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļĢāļąāļšāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āđāļĨāļ°āļāļēāļĢāļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡ Backend āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļĄāļ­āļ‡āđ€āļŦāđ‡āļ™āđ„āļ”āđ‰āđ‚āļ”āļĒāļ•āļĢāļ‡āļˆāļēāļāļœāļđāđ‰āđƒāļŠāđ‰ āđāļ•āđˆāļĄāļĩāļšāļ—āļšāļēāļ—āļŠāļģāļ„āļąāļāđƒāļ™āļāļēāļĢāļ—āļģāđƒāļŦāđ‰āđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡āđāļĨāļ°āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŦāļĨāļąāļāļ‚āļ­āļ‡ Backend Web Development ​

1. āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ (Server) ​

āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ„āļ·āļ­āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ„āļ­āļĄāļžāļīāļ§āđ€āļ•āļ­āļĢāđŒāļŦāļĢāļ·āļ­āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļĩāđˆāđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāļ•āđˆāļēāļ‡ āđ† āđ€āļŠāđˆāļ™ āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āđ‰āļ­āļĄāļđāļĨ āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ āđāļĨāļ°āļāļēāļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒ (client) āđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ

2. āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Database) ​

āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāđ€āļāđ‡āļšāļĢāļąāļāļĐāļēāđāļĨāļ°āļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™ āđ€āļŠāđˆāļ™ āļ‚āđ‰āļ­āļĄāļđāļĨāļœāļđāđ‰āđƒāļŠāđ‰, āļĢāļēāļĒāļāļēāļĢāļŠāļīāļ™āļ„āđ‰āļē, āļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļŠāļąāđˆāļ‡āļ‹āļ·āđ‰āļ­ āļŊāļĨāļŊ āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļ™āļīāļĒāļĄāđƒāļŠāđ‰ āđ„āļ”āđ‰āđāļāđˆ MySQL, PostgreSQL, MongoDB āđāļĨāļ° SQLite

3. āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļˆāļąāļ”āļāļēāļĢ API (Application Programming Interface) ​

API āđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āđ‚āļ”āļĒāļ—āļąāđˆāļ§āđ„āļ›āļˆāļ°āđƒāļŠāđ‰ RESTful API āļŦāļĢāļ·āļ­ GraphQL āđƒāļ™āļāļēāļĢāļĢāļąāļšāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

4. āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļĢāļąāļšāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ (HTTP Request and Response) ​

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļĢāļąāļšāļŠāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ„āļ„āļĨāđ€āļ­āđ‡āļ™āļ•āđŒāđāļĨāļ°āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļœāđˆāļēāļ™āđ‚āļ›āļĢāđ‚āļ•āļ„āļ­āļĨ HTTP (HyperText Transfer Protocol)

5. āļāļēāļĢāļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ (Security) ​

āļāļēāļĢāļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļĩ āđ€āļŠāđˆāļ™ āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļĄāļđāļĨ, āļāļēāļĢāđƒāļŠāđ‰ HTTPS, āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđāļĨāļ°āļāļēāļĢāļ­āļ™āļļāļāļēāļ•

āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāđāļĨāļ°āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļē Backend ​

1. āļ āļēāļĐāļēāļāļēāļĢāđ€āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ ​

  • JavaScript (Node.js): āđ€āļ›āđ‡āļ™āļ āļēāļĐāļēāļĒāļ­āļ”āļ™āļīāļĒāļĄāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļē Backend āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđ€āļĄāļ·āđˆāļ­āđƒāļŠāđ‰āļĢāđˆāļ§āļĄāļāļąāļš Node.js
  • Python (Django, Flask): āļ āļēāļĐāļēāļ—āļĩāđˆāļ­āđˆāļēāļ™āļ‡āđˆāļēāļĒāđāļĨāļ°āļĄāļĩāđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ—āļĩāđˆāļ—āļĢāļ‡āļžāļĨāļąāļ‡
  • Ruby (Ruby on Rails): āļĄāļĩāļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āđāļĨāļ°āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāļžāļąāļ’āļ™āļē
  • Java (Spring Boot): āđƒāļŠāđ‰āđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢāđƒāļŦāļāđˆāđāļĨāļ°āļĄāļĩāļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢ
  • PHP (Laravel): āļ™āļīāļĒāļĄāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļēāđ€āļ§āđ‡āļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™

2. āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ ​

  • SQL Databases: āđ€āļŠāđˆāļ™ MySQL, PostgreSQL, SQLite
  • NoSQL Databases: āđ€āļŠāđˆāļ™ MongoDB, Cassandra, Firebase

3. āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđāļĨāļ°āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ ​

  • Node.js: āļĢāļąāļ™ JavaScript āļšāļ™āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ
  • Django: āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ‚āļ­āļ‡ Python
  • Flask: āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ‚āļ­āļ‡ Python
  • Express.js: āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ‚āļ­āļ‡ Node.js
  • Spring Boot: āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ‚āļ­āļ‡ Java
  • Ruby on Rails: āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ‚āļ­āļ‡ Ruby
  • Laravel: āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļ„āļ‚āļ­āļ‡ PHP

4. āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ API ​

  • RESTful API: āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ API āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™
  • GraphQL: āļ āļēāļĐāļēāđƒāļ™āļāļēāļĢāļŠāļ­āļšāļ–āļēāļĄāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĩāļĒāļāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ„āļ”āđ‰āđ€āļ‰āļžāļēāļ°āđ€āļˆāļēāļ°āļˆāļ‡

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ Backend āļ”āđ‰āļ§āļĒ Node.js āđāļĨāļ° Express ​

āļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡ Node.js āđāļĨāļ° Express ​

bash
mkdir my-backend-app
cd my-backend-app
npm init -y
npm install express

āļŠāļĢāđ‰āļēāļ‡āđ„āļŸāļĨāđŒ index.js ​

javascript
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
    res.send('Hello, World!');
});

app.listen(port, () => {
    console.log(`Server is running at http://localhost:${port}`);
});

āļĢāļąāļ™āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ ​

bash
node index.js

āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ API āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™ ​

javascript
const express = require('express');
const app = express();
const port = 3000;

// Middleware āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āļāļēāļĢ JSON
app.use(express.json());

// API āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļœāļđāđ‰āđƒāļŠāđ‰
app.get('/api/users', (req, res) => {
    const users = [
        { id: 1, name: 'John Doe' },
        { id: 2, name: 'Jane Doe' }
    ];
    res.json(users);
});

// API āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļœāļđāđ‰āđƒāļŠāđ‰āđƒāļŦāļĄāđˆ
app.post('/api/users', (req, res) => {
    const newUser = req.body;
    // āđ€āļžāļīāđˆāļĄāļœāļđāđ‰āđƒāļŠāđ‰āđƒāļŦāļĄāđˆāđ€āļ‚āđ‰āļēāļŠāļđāđˆāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡)
    res.status(201).json(newUser);
});

app.listen(port, () => {
    console.log(`Server is running at http://localhost:${port}`);
});

āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļāļąāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ ​

āļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡āđ„āļĨāļšāļĢāļēāļĢāļĩāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (āđ€āļŠāđˆāļ™ MongoDB) ​

bash
npm install mongoose

āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āđāļĨāļ°āđƒāļŠāđ‰ MongoDB ​

javascript
const express = require('express');
const mongoose = require('mongoose');
const app = express();
const port = 3000;

app.use(express.json());

// āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļāļąāļš MongoDB
mongoose.connect('mongodb://localhost:27017/mydatabase', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', () => {
    console.log('Connected to MongoDB');
});

// āļŠāļĢāđ‰āļēāļ‡ Schema āđāļĨāļ° Model
const userSchema = new mongoose.Schema({
    name: String,
    email: String,
});

const User = mongoose.model('User', userSchema);

// API āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļœāļđāđ‰āđƒāļŠāđ‰
app.get('/api/users', async (req, res) => {
    try {
        const users = await User.find();
        res.json(users);
    } catch (err) {
        res.status(500).json({ message: err.message });
    }
});

// API āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļœāļđāđ‰āđƒāļŠāđ‰āđƒāļŦāļĄāđˆ
app.post('/api/users', async (req, res) => {
    const user = new User({
        name: req.body.name,
        email: req.body.email,
    });

    try {
        const newUser = await user.save();
        res.status(201).json(newUser);
    } catch (err) {
        res.status(400).json({ message: err.message });
    }
});

app.listen(port, () => {
    console.log(`Server is running at http://localhost:${port}`);
});

Backend Web Development āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļŠāļģāļ„āļąāļāđƒāļ™āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ€āļ§āđ‡āļšāļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđƒāļ™āļŦāļĨāļēāļĒāļŠāļ–āļēāļ™āļāļēāļĢāļ“āđŒ āļāļēāļĢāđ€āļ‚āđ‰āļēāđƒāļˆāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡āļŠāđˆāļ§āļ™ Backend āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ™āļąāļāļžāļąāļ’āļ™āļēāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢāđāļĨāļ°āļ›āļĨāļ­āļ”āļ āļąāļĒāđ„āļ”āđ‰