웹 구조

Ryu Honggyu·2024년 8월 13일

Django

목록 보기
4/19
post-thumbnail

웹 구조

클라이언트

  • 웹 애플리케이션을 사용하는 사용자.
  • 웹브라우저를 통해 도메인을 입력하고, 웹 페이지를 요청함.

웹브라우저

  • 클라이언트가 입력한 도메인을 처리하는 프로그램.
  • DNS에 도메인으로 IP를 요청하고, 서버에 웹페이지를 요청함.
  • 서버로부터 받은 응답을 렌더링하여 클라이언트에게 보여줌.

DNS

  • 도메인 이름을 해당하는 IP 주소로 변환하는 시스템.
  • 웹브라우저로부터 도메인을 받아 IP 주소를 찾고, 이를 응답함.
  • DNS는 자체적으로 IP 주소를 캐시하거나, 다른 DNS 서버와 통신하여 IP 주소를 확인함.

서버

  • 클라이언트의 요청을 받아 처리하고, 필요한 데이터를 제공하는 시스템.
  • 웹브라우저로부터 웹페이지 요청을 받아 데이터를 처리하고 응답함.

웹 구조 내 상호작용

  • 웹페이지를 불러오기 위해 웹 구조는 다음과 같은 상호작용을 순차적으로 수행함.
  • 모든 요청은 하술할 메서드 (method) 를 써서 진행.
  • 클라이언트가 웹브라우저에서 웹페이지 오픈 시도.
  • 웹브라우저가 DNS에 도메인으로 IP를 요청 시, DNS가 캐시 또는 다른 DNS 서버에 IP를 요청.
  • DNS가 도메인으로 IP를 요청 시, 캐시 또는 상위 DNS 서버가 DNS에 IP를 응답.
  • DNS가 웹브라우저에 IP를 응답.
  • 웹브라우저가 IP로 웹 서버에 웹페이지를 요청 시, 웹 서버가 요청을 처리.
  • 웹 서버가 데이터베이스에 웹페이지 생성을 위한 데이터를 요청 시, 데이터베이스가 웹 서버에 데이터를 응답.
  • 웹 서버가 웹브라우저에 웹페이지를 응답.
  • 웹브라우저가 서버로부터 받은 데이터를 렌더링하여 클라이언트에게 웹페이지를 표시함.

요청-응답 종류

HTTP 요청 (HTTP Request)

  • 클라이언트가 서버에 특정 작업을 요청하는 메시지.
  • 주요 HTTP 메서드:
    • GET: 리소스를 조회할 때 사용.
    • POST: 데이터를 서버에 제출할 때 사용.
    • PUT: 리소스를 업데이트할 때 사용.
    • DELETE: 리소스를 삭제할 때 사용.

HTTP 응답 (HTTP Response)

  • 서버가 클라이언트의 요청에 대해 응답하는 메시지.
  • HTTP 상태코드와 응답 데이터로 구성됨.

HTTP 상태코드

상태코드의미설명
1xx (정보)
100 Continue계속클라이언트가 계속해서 요청을 보내도록 지시함.
2xx (성공)
200 OK성공요청이 성공적으로 처리되었음을 의미함.
201 Created생성됨요청이 성공적으로 처리되었으며, 새로운 리소스가 생성되었음을 의미함.
204 No Content내용 없음요청이 성공적으로 처리되었으나, 반환할 콘텐츠가 없음을 의미함.
3xx (리다이렉션)
301 Moved Permanently영구 이동요청한 리소스가 영구적으로 다른 URL로 이동되었음을 의미함.
302 Found임시 이동요청한 리소스가 일시적으로 다른 URL로 이동되었음을 의미함.
304 Not Modified수정되지 않음클라이언트에 캐시된 리소스가 최신 상태임을 의미함.
4xx (클라이언트 오류)
400 Bad Request잘못된 요청잘못된 요청으로 서버가 요청을 이해하지 못했음을 의미함.
401 Unauthorized인증 실패인증이 필요한 요청이나 인증이 실패했음을 의미함.
403 Forbidden접근 금지서버가 요청을 이해했으나 권한이 없어 거부되었음을 의미함.
404 Not Found찾을 수 없음요청한 리소스를 찾을 수 없음을 의미함.
5xx (서버 오류)
500 Internal Server Error내부 서버 오류서버에서 요청을 처리하는 도중에 오류가 발생했음을 의미함.
502 Bad Gateway잘못된 게이트웨이서버가 게이트웨이 역할을 할 때, 상위 서버로부터 잘못된 응답을 받았음을 의미함.
503 Service Unavailable서비스 이용 불가서버가 현재 요청을 처리할 수 없음을 의미함. 일반적으로 서버 과부하나 유지보수 중일 때 사용됨.
profile
알고리즘 & 웹 & CS & AI

0개의 댓글