HTTP

jihun·2025년 10월 7일

studylog

목록 보기
1/11

1. 한줄정리

HTTP = 클라이언트와 서버 간 데이터를 주고받는 요청–응답 기반 프로토콜로, 상태코드·헤더·메서드·쿠키/세션 등을 활용해 웹 애플리케이션이 동작한다.


2. 등장 배경

  • 웹은 기본적으로 클라이언트(브라우저) ↔ 서버 구조.
  • 서버에 요청을 보내고, 서버는 응답을 반환하는 방식 필요 → HTTP(HyperText Transfer Protocol) 탄생.
  • 이후 보안 강화(HTTPS), 성능 개선(HTTP/2, HTTP/3)으로 진화.

3. 핵심 내용

  • HTTP 구조: 요청(Request) + 응답(Response)
  • HTTP 메서드
    • GET: 조회
    • POST: 생성
    • PUT/PATCH: 수정
    • DELETE: 삭제
  • 상태코드
    • 2xx: 성공 (200 OK, 201 Created)
    • 3xx: 리다이렉션 (301, 302)
    • 4xx: 클라이언트 오류 (400 Bad Request, 401 Unauthorized, 404 Not Found)
    • 5xx: 서버 오류 (500 Internal Server Error)
  • 쿠키·세션·스토리지
    • 쿠키: 서버 ↔ 브라우저 간 상태 저장. 만료 기한 있음, 용량 제한(4KB).
    • 세션: 서버에 상태 저장, 클라이언트는 세션 ID만 보유.
    • LocalStorage/SessionStorage: 브라우저 내 저장소 (영구/탭 종료 시 삭제).
  • 인증 토큰: JWT(Bearer Token) → HTTP Header에 포함.
  • CORS: 다른 출처 간 요청 시 발생하는 보안 정책.

4. 동작 원리

  1. 브라우저가 요청(Request): URL, 메서드, 헤더, 바디 포함.
  2. 서버가 요청을 해석하고 처리 후 응답(Response) 반환: 상태코드, 헤더, 바디 포함.
  3. 인증 필요한 경우 → 쿠키/세션/토큰을 통해 사용자 식별.
  4. 보안(HTTPS) → TLS 암호화로 통신 보호.

5. 장단점 분석

장점

  • 단순하고 범용적 → 모든 웹 애플리케이션의 기본.
  • 확장성: 상태코드, 헤더 확장 가능.
  • 진화: HTTP/2, HTTP/3에서 성능 대폭 개선.

단점

  • Stateless 특성 → 세션 관리 필요.
  • 기본 HTTP는 암호화 없음 → 보안 취약 (HTTPS 필수).
  • 요청–응답 기반 → 실시간 양방향엔 WebSocket 필요.

6. 코드 예시

// fetch 예시
fetch("https://jsonplaceholder.typicode.com/posts/1")
  .then((res) => {
    console.log("Status:", res.status); // 상태코드
    console.log("Headers:", [...res.headers]); // 헤더 출력
    return res.json();
  })
  .then((data) => console.log("Response body:", data));

7. 연관 개념 및 용어 정리

  • HTTPS: HTTP + TLS 보안 계층.
  • JWT: JSON Web Token, 인증 토큰 표준.
  • CORS: Cross-Origin Resource Sharing, 브라우저 보안 정책.
  • Stateless: 서버가 클라이언트 상태를 기억하지 않는 특성.

0개의 댓글