HTTP 정리

윤슬·2025년 9월 22일

HTTP : HyperText Transfer Protocol

  • 문자 이동 규약/규칙

1. 정의

  • 웹/앱에서 사용되는 문자/바이트 통신 규약

2. 특징

  1. 무상태 프로토콜(상태 없고 저장 기능 없음)
  2. 독립적, 이전 통신과 다음 통신은 관련 없음
  3. TCP/IP 프로토콜에 종속되어 동작, IP 사용 (예: http://192.168.40.185)

3. 주소체계

4. HTTP HEADER

  • HTTP 통신 정보/옵션 정보 포함
  • 브라우저 F12 -> 네트워크 탭 확인 가능
  • 주요 속성
    1. HTTP METHOD: 요청 분류 규칙
    2. HTTP BODY: 요청/응답 본문
    3. HTTP Content-Type: 데이터 타입 정보
    4. HTTP HOST: 서버 도메인 주소

5. HTTP METHOD 종류

  1. GET: @GetMapping, Create
  2. POST: @PostMapping, Read
  3. PUT: @PutMapping, Update
  4. DELETE: @DeleteMapping, Delete

6. HTTP Content-Type 종류

  1. 정의: 요청과 응답의 본문(BODY) 데이터 형식
  2. 목적: 서버와 클라이언트가 데이터를 주고받는 형식 명시
  3. 종류
    1. text/html: HTML 문서(JSP 포함)
    2. text/plain: 일반 텍스트(Java String 반환)
    3. application/json: JSON 데이터(REST API 주요 데이터)
    4. application/x-www-form-urlencoded: 폼 형식 데이터(HTML )
    5. multipart/form-data: 첨부파일 업로드, 대용량 데이터

7. HTTP 사용처

  1. 브라우저: 크롬, 엣지, 사파리 등에서 URL 입력(GET 방식)
  2. Talend API: 개발자용 HTTP 테스트
  3. JS: fetch, ajax(jQuery), axios(Node.js) 등

8. HTTP 통신 데이터 전달 방법

  • 방법1) 쿼리스트링 이용(GET, POST, PUT, DELETE), 경로 데이터 노출

    • URL '?' 뒤 매개변수 & 구분
    • 예: localhost:8080/member/login.jsp?id=qwe
    • 스프링 매핑: @RequestParam
  • 방법2) BODY 이용(POST, PUT), 경로 데이터 비노출

    • HTTP 요청/응답 내용 전달
    • 예: localhost:8080/member/login.jsp, { "id": "qwe" }
    • 스프링 매핑: @RequestBody
  • 방법3) FORM 이용(POST)

    • HTML 마크업 사용
    • 종류
      1. 데이터 위주: application/x-www-form-urlencoded
      2. 첨부파일: multipart/form-data
    • 스프링 매핑: @ModelAttribute

9. HTTP 응답 코드

  • 정의: 서버가 클라이언트 요청 결과를 나타내는 코드
  • 종류
    • 1xx: 요청 받고 진행 중
    • 2xx: 요청 받고 응답 처리
      • 200: 요청 받고 응답 자료 있음
      • 201: 저장 성공, 응답 자료 있음
      • 204: 저장 성공, 응답 자료 없음
    • 3xx: 요청 완료 위한 추가 조치 요구
    • 4xx: 클라이언트 오류
      • 400: 서버가 이해할 수 없는 요청(쿼리스트링, body, 매핑 오류)
      • 401: 권한 없음
      • 403: 권한 거부
      • 404: 요청 주소 자원 없음
      • 409: 중복 값
    • 5xx: 서버 오류
      • 500: 서버 예기치 못한 오류 발생
profile
우상향그래프

0개의 댓글