Sobes.tech
Middle

Mi történik, miután megkaptuk a DNS-t és elküldtük a kérésünket a szolgáltatásunknak?

sobes.tech MI

Válasz az MI-től

  1. A böngésző TCP kapcsolatot létesít a szerverrel a 80-as porton (HTTP esetén) vagy a 443-as porton (HTTPS esetén).
  2. A böngésző HTTP-kérést küld, amely tartalmazza a módszert (GET, POST stb.), a kért erőforrás útvonalát, a protokoll verzióját, a fejléc mezőket (User-Agent, Accept, Cookie stb.) és esetleg a kérés testét (POST esetén).
  3. A szerver megkapja a kérést.
  4. A web szerver (pl. Nginx, Apache) elfogadja a kérést, és ha be van állítva, továbbítja a Ruby alkalmazásnak (pl. Rack, Passenger, Unicorn).
  5. A Ruby alkalmazás feldolgozza a kérést. Ez magában foglalja:
    • A kérés irányítása a megfelelő vezérlőre és akcióra az útvonal és a módszer alapján.
    • Paraméterek kinyerése az URL-ből, fejlécből és a kérés testéből.
    • Az alkalmazás logikájának végrehajtása (pl. adatbázissal való interakció, számítások).
    • A válasz elkészítése.
  6. A Ruby alkalmazás HTTP-választ generál. Ez tartalmazza:
    • Állapotkód (pl. 200 OK, 404 Not Found, 500 Internal Server Error).
    • A válasz fejléc mezői (Content-Type, Content-Length, Set-Cookie stb.).
    • A válasz törzse (HTML, JSON, XML stb.).
  7. A Ruby alkalmazás visszaküldi a választ a web szervernek.
  8. A web szerver elküldi a választ a kliensnek (böngésző).
  9. A böngésző megkapja a választ, elemzi, megjeleníti a kapott adatokat (ha HTML) és kezeli a további kéréseket (pl. CSS, JS, képek).
  10. A TCP kapcsolat lezárható vagy fenntartható a további kérésekhez (Keep-Alive).
# Alapvető routing példa Rails-ben
# config/routes.rb
Rails.application.routes.draw do
  root 'welcome#index' # Gyökér URL routing a welcome kontrollerről, index akcióra
  get 'users/:id', to: 'users#show' # GET /users/:id routing a users kontrollerről, show akcióra
end

# Kontroller példa Rails-ben
# app/controllers/users_controller.rb
class UsersController < ApplicationController
  def show
    @user = User.find(params[:id]) # Az URL-ből származó :id paraméter lekérése és a felhasználó keresése
    # @user renderelése (általában nézet sablonon keresztül)
  rescue ActiveRecord::RecordNotFound
    render file: "#{Rails.root}/public/404.html", status: :not_found # Nem található felhasználó kezelése
  end
end