Sobes.tech
Middle

Biz DNS ni olganimiz va xizmatimizga so'rov yuborganimizdan keyin nima bo'ladi?

sobes.tech AI

AIdan javob

  1. Brauzer TCP ulanishini 80 portida (HTTP uchun) yoki 443 portida (HTTPS uchun) o'rnatadi.
  2. 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.
  3. Server so'rovni oladi.
  4. Veb-server (masalan, Nginx, Apache) so'rovni qabul qiladi va, agar sozlangan bo'lsa, uni Ruby ilovasiga (masalan, Rack, Passenger, Unicorn orqali) uzatadi.
  5. 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.
  6. 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).
  7. Ruby ilovasi javobni veb-serverga yuboradi.
  8. Veb-server javobni mijozga (brauzerga) yuboradi.
  9. 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.
  10. 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