Middle
Biz DNS ni olganimiz va xizmatimizga so'rov yuborganimizdan keyin nima bo'ladi?
sobes.tech AI
AIdan javob
- Brauzer TCP ulanishini 80 portida (HTTP uchun) yoki 443 portida (HTTPS uchun) o'rnatadi.
- Brauzer HTTP so'rovini yuboradi, unda metod (GET, POST va boshqalar), so'ralayotgan resursning yo'li, protokol versiyasi, sarlavhalar (User-Agent, Accept, Cookie va boshqalar) va ehtimol, so'rovning tanasi (POST uchun) bo'ladi.
- Server so'rovni oladi.
- Veb-server (masalan, Nginx, Apache) so'rovni qabul qiladi va, agar sozlangan bo'lsa, uni Ruby ilovasiga (masalan, Rack, Passenger, Unicorn orqali) uzatadi.
- Ruby ilovasi so'rovni qayta ishlaydi. Bu quyidagilarni o'z ichiga oladi:
- Yo'l va metod asosida so'rovni mos keladigan nazoratchi va amalga yo'naltirish.
- URL, sarlavhalar va so'rov tanasidan parametrlarni chiqarib olish.
- Ilova mantiqini bajarish (masalan, ma'lumotlar bazasi bilan muloqot, hisoblashlar).
- Javobni tayyorlash.
- Ruby ilovasi HTTP javobini ishlab chiqaradi. Bu quyidagilarni o'z ichiga oladi:
- Holat kodi (masalan, 200 OK, 404 Not Found, 500 Internal Server Error).
- Javob sarlavhalari (Content-Type, Content-Length, Set-Cookie va boshqalar).
- Javob tanasi (HTML, JSON, XML va boshqalar).
- Ruby ilovasi javobni veb-serverga yuboradi.
- Veb-server javobni mijozga (brauzerga) yuboradi.
- Brauzer javobni oladi, tahlil qiladi, qabul qilingan ma'lumotlarni (agar HTML bo'lsa) render qiladi va qo'shimcha so'rovlarni (masalan, CSS, JS, rasmlar uchun) bajaradi.
- TCP ulanish yopilishi yoki keyingi so'rovlar uchun saqlanishi mumkin (Keep-Alive).
# Railsda asosiy marshrutlash misoli
# config/routes.rb
Rails.application.routes.draw do
root 'welcome#index' # Asosiy URLni welcome nazoratchisining index amaliga marshrutlash
get 'users/:id', to: 'users#show' # GET /users/:id marshrutlash users nazoratchisining show amali uchun
end
# Railsda nazoratchi misoli
# app/controllers/users_controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id]) # URL'dan :id parametrini olish va foydalanuvchini qidirish
# @user ni render qilish (odatda view shabloni orqali)
rescue ActiveRecord::RecordNotFound
render file: "#{Rails.root}/public/404.html", status: :not_found # Foydalanuvchi topilmagan holatni boshqarish
end
end