HTTP(HyperText Transfer Protocol)

euicheol0910 2025. 5. 14. 09:51

HTTP(HyperText Transfer Protocol, 하이퍼텍스트 전송 프로토콜)는 웹에서 클라이언트(브라우저 등)와 서버가 통신할 때 사용하는 프로토콜입니다.

 

여기서 말하는 프로토콜이란? 

프로토콜(Protocol)**이란 컴퓨터나 네트워크 장비들이 데이터를 주고받을 때 따르는 약속이나 규칙의 집합입니다.

 

사람끼리 대화할 때 언어(예: 한국어, 영어)를 사용하듯,
컴퓨터끼리 정해진 방식으로 소통해야 이해할 수 있습니다.
정해진 통신 방식이 바로 프로토콜입니다.

프로토콜의 역할은 아래와 같습니다.

 

프로토콜의 역할

  1. 어떤 데이터를 주고받을지 정함
  2. 데이터 형식과 구조를 정의함
  3. 오류가 발생했을 때 처리 방식 규정
  4. 보안, 인증 등의 절차 포함 가능

 

HTTP의 주요 특징

  1. 무상태(stateless)
    • HTTP는 요청 간에 상태를 저장하지 않습니다.
    • 예: 로그인 후 페이지를 이동해도 이전 요청의 정보는 유지되지 않음 → 이를 보완하기 위해 쿠키, 세션 등을 사용함.
  2. 클라이언트-서버 구조
    • 클라이언트(브라우저)는 요청을 보내고, 서버는 요청에 대한 응답을 보냄.
  3. 텍스트 기반 프로토콜
    • 요청과 응답이 사람이 읽을 수 있는 텍스트 형식으로 이루어짐.
  4. 비연결성(Connectionless)
    • 요청과 응답이 끝나면 연결을 끊음. HTTP/1.1부터는 Keep-Alive를 통해 연결을 유지할 수도 있음.

 

HTTP 요청 구조

 

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html

 

 

  • 요청 라인: 메서드(GET, POST 등), 경로, 버전
  • 헤더: 클라이언트 정보, 요청 세부 사항
  • 본문(body): (POST 등에서) 서버로 전송할 데이터

 

HTTP 응답 구조

 

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234

<html>...</html>

 

 

 

  • 상태 라인: 버전, 상태 코드(200, 404 등), 설명
  • 헤더: 응답 세부 정보
  • 본문(body): 실제 리소스 데이터

 

주요 HTTP 메서드

메서드  설명
GET 리소스 요청 (조회)
POST 데이터 전송 (등록)
PUT 전체 수정
PATCH 일부 수정
DELETE 리소스 삭제

 

 

HTTP 상태 코드 예시

 

코드  의미
200 성공 (OK)
301 영구 이동 (리디렉션)
400 잘못된 요청 (Bad Request)
401 인증 필요 (Unauthorized)
403 접근 금지 (Forbidden)
404 존재하지 않음 (Not Found)
500 서버 오류 (Internal Server Error)

 

'' 카테고리의 다른 글

스프링 프레임워크(Spring Framework)란?  (5) 2025.05.20
WAS에 대하여  (2) 2025.05.19
클라이언트-서버 구조에 대하여  (5) 2025.05.15
MVC패턴  (0) 2025.05.13