웹페이지의 동작 과정 (Feat. Python)

dpwl·2024년 7월 13일

Data Analysis with Python

목록 보기
46/48

1. 웹페이지의 동작 과정

웹페이지가 동작하는 과정은 사용자가 웹 브라우저를 통해 웹사이트를 요청하고, 서버가 해당 요청을 처리하여 응답을 보내는 일련의 단계를 포함한다.

1.1 HTTP 구성 요소

1.1.1 URL (Uniform Resource Locator)

URL은 웹 자원의 위치를 지정하는 문자열이다. 기본적인 구성 요소는 다음과 같다.

  • HTTP: 데이터를 암호화하지 않고 그대로 전송하며, 보안에 취약하다.
  • HTTPS: HTTP에 보안 계층(SSL/TLS)을 추가하여 데이터를 암호화하여 안정성과 무결성을 보장한다.

1.1.2 HTTP 메서드

HTTP 메서드는 클라이언트가 서버에 요청할 작업의 종류를 나타낸다.

  • GET: 서버에서 데이터를 검색한다. 주로 페이지를 요청할 때 사용된다. (예: 페이지를 보여달라는 요청)
  • POST: 서버로 데이터를 보내서 새로운 리소스를 생성한다. (예: 신규 회원가입)
  • PUT: 서버의 기존 데이터를 업데이트한다. (예: 회원정보 수정)
  • DELETE: 서버의 데이터를 삭제한다. (예: 회원 탈퇴)

1.1.3 HTTP 헤더

HTTP 헤더는 요청과 응답에 대한 메타데이터와 설정 정보를 포함한다.

  • 요청 헤더 (Request Headers)
    • User-Agent: 클라이언트의 브라우저와 운영 체재 정보
    • Accept: 클라이언트가 수용할 수 있는 컨텐츠 유형
    • Authorization: 인증 토큰 또는 자격 증명 (credential)
  • 응답 헤더 (Response Headers)
    • Content-Type: 반환되는 컨텐츠의 유형 (예: text/html, application/json)
    • Content-Lengh: 반환되는 컨텐츠의 길이
    • Set-Cookie: 쿠키 정보 설정

1.1.4 HTTP 본문 (Body)

HTTP 본문은 클라이언트가 서버로 보내는 데이터 또는 서버가 클라이언트로 보내는 데이터를 포한다.

  • GET: 보통 본문이 없으며, 필요한 데이터는 URL을 통해 전달
  • POST, PUT: 추가 또는 업데이트할 데이터가 본문에 포함 (예: 폼 데이터나 JSON 데이터 등의 형식)

1.1.5 상태 코드 (Status Codes)

상태 코드는 서버가 클라이언트의 요청을 어떻게 처리했는지를 나타내는 세 자리 숫자이다.

  • 성공 응답 (Successful responses, 2xx)
    • 200 OK: 요청이 성공적으로 처리
    • 201 Created: 요청이 성공적으로 처리되었고, 새로운 리소스가 생성
    • 204 No Content: 요청이 성공적으로 처리되었으나 반환할 컨텐츠가 없음
  • 클라이언트 에러 응답 (Client error responses, 4xx)
    • 400 Bad Request: 잘못된 요청
    • 401 Unauthorized: 인증 필요
    • 403 Forbidden: 접근 금지
    • 404 Not Found: 요청한 리소스를 찾을 수 없음
  • 서버 에러 응답 (Server error responses, 5xx)
    • 500 Internal Server Error: 서버 내부 오류
    • 501 Not Implemented: 서버에서 요청한 기능을 지원하지 않음
    • 502 Bad Gateway: 게이트웨이 오류

2. 브라우저의 역할

브라우저는 웹페이지를 사용자에게 표시하기 위해 다음과 같은 과정을 거친다.

1) 서버에 요청을 보낸다.
2) 서버에서 웹페이지 생성에 필요한 파일들을 받는다.
3) 웹페이지의 구조(HTML)를 파싱(=읽고 구조하)한다. HTML을 읽고 DOM(Document Object Model)을 생성한다.
4) 웹페이지의 디자인(CSS)을 파싱(=읽고 구조화)한다. CSS를 읽고 스타일 정보를 적용한다.
5) 이해한 HTML과 CSS 정보를 합쳐서 화면에 보여준다.

profile
거북선통통통통

0개의 댓글