CS/[도서] 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접

[네트워크] 5-5. (2) HTTP 메서드와 상태 코드

annovation 2025. 8. 18. 23:41

HTTP 메서드

 

💡HTTP 메시지 구조

  • 시작 라인
    • 요청 라인 : 메서드 + 요청 대상 + HTTP 버전
    • 상태 라인 : HTTP 버전 + 상태 코드 + 이유 구문
  • 필드 라인 (헤더) : 여러 개 있을 수 있음
  • 메시지 본문 : 선택적, 데이터 포함

 

💡HTTP 주요 메서드

메서드 설명
GET 자원을 조회 (가장 많이 사용)
HEAD GET과 같지만 응답 본문 제외
POST 서버가 특정 작업을 처리하도록 요청 (새 자원 생성에 자주 사용)
PUT 자원을 ‘전체’ 수정 (덮어쓰기)
PATCH 자원의 ‘일부’ 수정
DELETE 자원 삭제
CONNECT 양방향 연결 시작
OPTIONS 사용 가능한 메서드/통신 옵션 확인
TRACE 자원에 대한 루프백 테스트

 

 

✅ GET / HEAD

  • GET : 웹 페이지, 이미지 등 자원 조회
  • HEAD : GET과 동일하지만 본문 없음

📌 예시

GET /example-page HTTP/1.1
Host: www.example.com

 

🔎 응답

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 648
<html>...</html>

 

 

✅ POST

  • 서버가 특정 작업을 수행하도록 요청
  • 주로 새로운 자원 생성에 사용

📌 예시

POST /posting HTTP/1.1
Host: example.com
{
  "Id": 1,
  "Title": "컴퓨터 네트워크",
  "Contents": "중요한 과목이니 끝까지 화이팅!"
}

 

🔎 응답

HTTP/1.1 201 Created
Location: /posting/1
{
  "Id": 1,
  "Title": "컴퓨터 네트워크",
  "Contents": "중요한 과목이니 끝까지 화이팅!"
}

 

 

✅ PUT / PATCH

  • PUT : 전체 자원을 교체
  • PATCH : 일부만 수정

📌 PUT 예시

PUT /posting/1 HTTP/1.1
Host: example.com
{
  "Id": 1,
  "Title": "수정된 제목입니다"
}

 

📌 PATCH 예시

PATCH /posting/1 HTTP/1.1
Host: example.com
{
  "Title": "수정된 제목입니다"
}

 

 

✅ DELETE

  • 특정 자원을 삭제

📌 예시

DELETE /texts/a.txt HTTP/1.1
Host: example.com

 

HTTP 주요 헤더

 

💡주요 헤더 정리

헤더 쓰이는 곳 핵심 역할 대표 예시 비고/자주 묻는 점
Host 요청 요청을 보낼 호스트명(+포트)지정 → 가상 호스팅 구분 Host: info.cern.ch HTTP/1.1 필수. 요청 라인의 경로와 합치면 전체 URL 재구성 가능
User-Agent 요청 클라이언트(브라우저/프로그램) 종류·버전·플랫폼 정보 User-Agent: Mozilla/5.0 (... Firefox/109.0) 서버가 통계/최적화/호환성 판단에 활용
Referer (오타 아님) 요청 요청을 보낸 페이지의 URL(이전 위치) 알림 Referer: https://minchul.net/ 유입 경로 파악·분석. 일부 상황에서 빈 값/생략될 수 있음
Server 응답 응답을 보낸 서버 소프트웨어/OS 정보 Server: Apache/2.4.1 (Unix) 보안상 과도한 노출은 줄이기도 함
Allow 응답 해당 리소스가 허용하는 메서드 목록 통지 Allow: POST, OPTIONS 주로 405 Method Not Allowed와 함께 옴
Location 응답 리소스의 새 위치 또는 생성된 리소스의 주소 Location: /posting/1 3xx 리다이렉션, 201 Created 때 자주 사용
Date 요청/응답 메시지 생성 일시(UTC) Date: Tue, 15 Nov 1994 08:12:31 GMT 표준 형식은 IMF-fixdate(UTC)
Content-Length 요청/응답 본문의 바이트 길이 Content-Length: 648 전송 본문 존재 시 필요(단, chunked 전송은 제외)
Content-Type 요청/응답 본문 미디어 타입(+문자셋) Content-Type: text/html; charset=UTF-8 서버·클라 모두 본문 해석 기준
Content-Language 응답(주로) 본문에 사용된 자연어(국가/지역) Content-Language: ko-KR 형식: 언어-국가(예: en-US, en-GB)
Content-Encoding 응답(주로) 본문에 적용한 압축/변환 방식 Content-Encoding: gzip 수신 측이 디코딩해야 실제 본문 획득
Connection 요청/응답 연결 유지/종료 의사 Connection: keep-alive / Connection: close HTTP/1.1 기본 지속 연결, 명시로 의사 확인

 

 

💡요청 메시지에서 주로 쓰는 헤더

 

1. Host

  • 요청이 향하는 도메인명 또는 IP(+포트)가 명시되는 헤더
  • 가상 호스팅(한 IP에 여러 사이트 운영) 환경에서 어느 사이트의 리소스를 달라는지 서버가 구분
  • Host 헤더와 요청 라인을 조합하면 요청을 보낸 URL을 짐작할 수 있는 경우가 많다.
GET /hypertext/WWW/TheProject.html HTTP/1.1
Host: info.cern.ch

 

2. User-Agent

  • 클라이언트(브라우저/봇/앱)의 제품명·버전·플랫폼 
  • 대응 CSS/JS 선택, 통계 수집, 디버깅·지원 판단
  • HTTP 요청 메세지를 보낸 클라이언트의 접속 수단(ex. 웹 브라우저)을 유추할 수 있다.

User-Agent

 

3. Referer

  • 사용자가 어디서 왔는지(직전 페이지 URL)
  • 유입 경로 분석, CSRF 방어 보조 검증 등
  • 개발 초기 당시 오타로 표기됐던 Referer이 현재까지 사용되고있다. (원래 Referrer이 올바른 표현)
Referer: https://minchul.net/

출처

https://www.hanbit.co.kr/store/books/look.php?p_code=B3079890360

 

이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접

기술 면접과 실무에 필요한 CS 지식, 한 권으로 끝내자!

www.hanbit.co.kr


이미지 출처

1) User-Agent

https://www.youtube.com/watch?v=N_qURj2Wtn8&ab_channel=%ED%95%9C%EB%B9%9B%EB%AF%B8%EB%94%94%EC%96%B4