HTTP 프로토콜

journey·2023년 12월 8일
0

HTTP 프로토콜

웹에서 데이터를 주고받기 위한 표준 프로토콜입니다. 이 프로토콜은 웹 브라우저(클라이언트)와 웹 서버 간의 통신을 가능하게 함

HTTP 주요특징

클라이언트-서버 모델

  • HTTP는 클라이언트-서버 모델을 따릅니다. 클라이언트(주로 웹 브라우저)는 서버에 리소스(웹 페이지, 이미지, 파일 등)에 대한 요청을 보냅니다. 서버는 이 요청을 처리하고 적절한 응답을 반환합니다.

무상태 프로토콜

  • HTTP는 무상태(stateless) 프로토콜입니다. 즉, 서버는 이전의 클라이언트 요청을 기억하지 않습니다. 각 요청은 독립적으로 처리되며, 이전의 요청과는 연결되지 않습니다.

상태(State): 네트워크 통신에서 '상태'란 클라이언트와 서버 간의 상호작용에서 각 단계에서의 정보를 의미합니다. 예를 들어, 사용자가 로그인을 하면, 서버는 사용자가 로그인했다는 상태 정보를 가지고 있어야 합니다.

세션(Session): 세션은 클라이언트와 서버 간에 지속되는 상호작용을 의미합니다. 예를 들어, 사용자가 웹사이트에 로그인하면, 그 사용자의 로그인 상태를 유지하는 것이 세션입니다.

무상태 프로토콜에서는 서버가 이러한 상태나 세션 정보를 저장하지 않습니다. 즉, 클라이언트가 서버에 요청을 보낼 때마다, 서버는 그 요청을 완전히 새로운 요청으로 간주하고, 이전에 같은 클라이언트로부터 받았던 요청들과의 연관성을 고려하지 않습니다. 각 요청은 독립적으로 처리되며, 요청이 끝나면 해당 요청에 대한 정보는 서버에서 사라집니다.

이러한 방식은 서버가 사용자의 상태 정보를 계속 추적할 필요가 없어 구현이 단순해지고 확장성이 높아지는 장점이 있습니다. 그러나 상태 정보를 유지해야 하는 경우(예: 온라인 쇼핑 카트, 로그인 세션 유지)에는 쿠키, 세션 변수 등의 추가적인 메커니즘을 사용하여 이를 처리해야 합니다.

요청과 응답

  • HTTP 통신은 요청과 응답의 형태로 이루어집니다. 클라이언트는 HTTP 요청을 보내고, 서버는 HTTP 응답을 반환합니다.
  • 요청과 응답 모두 헤더(Header)와 바디(Body)로 구성됩니다. 헤더에는 요청 또는 응답의 성격을 설명하는 메타데이터가 포함되며, 바디에는 실제 전송되는 데이터가 포함됩니다.

HTTP 메소드

  • HTTP는 여러 가지 메소드를 제공합니다. 이들 메소드는 서버에 어떤 동작을 요청할지 명시합니다.
    • GET: 리소스를 조회할 때 사용합니다.
    • POST: 새로운 리소스를 생성할 때 사용합니다.
    • PUT: 리소스를 업데이트할 때 사용합니다.
    • DELETE: 리소스를 삭제할 때 사용합니다.
    • 기타 메소드들 (HEAD, OPTIONS, PATCH 등)도 존재합니다.

상태 코드

  • HTTP 응답에는 상태 코드(Status Code)가 포함됩니다. 이 코드는 요청이 성공했는지, 실패했는지, 그리고 실패의 원인이 무엇인지를 나타냅니다.
    - 예: 200 OK는 성공, 404 Not Found는 요청한 리소스를 찾을 수 없음, 500 Internal Server Error는 서버 내부 오류 등.

구조

Request(요청)
Response(응답)

  1. 클라이언트의 요청(Request)
    HTTP 메서드 사용: 클라이언트는 HTTP 메서드 (예: GET, POST, PUT, DELETE)를 사용하여 서버에 요청을 보냅니다. 각 메서드는 다른 유형의 작업을 나타냅니다 (예: GET은 데이터 조회, POST는 데이터 생성).
    URI 사용: 요청은 Uniform Resource Identifier(URI)를 사용하여 특정 리소스를 지정합니다. 예를 들어, http://example.com/api/users는 사용자 목록을 나타낼 수 있습니다.
    요청 본문: POST나 PUT과 같은 메서드에서는 요청 본문에 데이터를 포함시킬 수 있습니다. 데이터 형식은 주로 JSON 또는 XML을 사용합니다.

  2. 서버의 처리
    리소스 식별: 서버는 요청된 URI를 분석하여 어떤 리소스에 대한 요청인지 식별합니다.
    작업 실행: 서버는 HTTP 메서드에 따라 적절한 작업(데이터 조회, 수정, 삭제 등)을 수행합니다.
    데이터베이스 상호작용: 필요한 경우, 서버는 데이터베이스와 상호작용하여 요청에 필요한 데이터를 검색, 저장, 수정 또는 삭제합니다.

  3. 서버의 응답(Response)
    HTTP 상태 코드: 서버는 요청 처리 결과를 나타내는 HTTP 상태 코드를 응답에 포함합니다 (예: 200 OK, 404 Not Found).
    응답 본문: 서버는 처리 결과에 따라 응답 본문에 데이터를 포함시킵니다. 이 데이터도 주로 JSON 또는 XML 형식입니다.
    헤더 정보: 응답에는 Content-Type, 캐싱 정책 등과 같은 추가 정보를 포함하는 HTTP 헤더가 포함될 수 있습니다.

  4. Request Message

profile
백엔드 개발 여정

0개의 댓글

관련 채용 정보