HTTP 메시지 구조
시작라인, 필드라인, 메시지 본문으로 구성
- 필드라인은 없거나 여러 개 있을 수 있음
- 메시지 본문은 없을 수 있음
- 필드 라인과 메시지 본문 사이에는 빈 줄바꿈이 있음
- HTTP 메세지는 요청 메시지일 수도 있고, 응답메시지일 수도 있음
HTTP 메시지 = 시작라인(줄바꿈)
필드라인(줄바꿈)
(줄바꿈)
메시지 본문(선택적)
HTTP 상태 코드
코드 유형 의미
100 | 1xx (정보) | Continue – 계속 진행해도 됨 |
101 | 1xx (정보) | Switching Protocols – 프로토콜 전환 승인 |
200 | 2xx (성공) | OK – 요청 성공 |
201 | 2xx (성공) | Created – 자원 생성됨 |
202 | 2xx (성공) | Accepted – 요청 수락, 처리 중일 수 있음 |
204 | 2xx (성공) | No Content – 응답 본문 없음 |
301 | 3xx (리다이렉션) | Moved Permanently – 영구 이동 |
302 | 3xx (리다이렉션) | Found – 임시 이동 (예전엔 "Moved Temporarily") |
303 | 3xx (리다이렉션) | See Other – 다른 URL로 리다이렉트 |
304 | 3xx (리다이렉션) | Not Modified – 수정 없음 (캐시 사용) |
307 | 3xx (리다이렉션) | Temporary Redirect – 임시 리다이렉트 |
400 | 4xx (클라이언트 오류) | Bad Request – 잘못된 요청 |
401 | 4xx (클라이언트 오류) | Unauthorized – 인증 필요 |
403 | 4xx (클라이언트 오류) | Forbidden – 접근 금지 |
404 | 4xx (클라이언트 오류) | Not Found – 자원 없음 |
405 | 4xx (클라이언트 오류) | Method Not Allowed – 허용되지 않은 메서드 |
500 | 5xx (서버 오류) | Internal Server Error – 서버 오류 |
502 | 5xx (서버 오류) | Bad Gateway – 게이트웨이 오류 |
503 | 5xx (서버 오류) | Service Unavailable – 서비스 불가 |
HTTP 메서드
- GET - 특정자원을 조회할 때 사용되는 메서드(가져다주세요)
- HEAD - GET과 동일하나, 헤더만을 응답받는 메서드
- POST - 서버로 하여금 특정 작업을 처리하게끔 하는 메서드
- (처리해주세요 --> 처리할 대상은 흔히 메시지 본문으로 명시)
- 새로운 자원이 생성시 서버는 응답 메시지의 Location 헤더를 통해 새로 생성된 자원의 위치를 알려줌
- PUT - 자원을 대체하기 위한 메서드(덮어쓰기/대체)
- PATCH - 자원에 대한 부분적 수정을 위한 메서드(부분적 수정)
- DELETE - 자원을 삭제하기 위한 메서
HTTP 요청 구조
- 요청 라인 (Request Line)
- 형식:
메서드(공백)요청대상(공백)HTTP/버전(공백)(줄바꿈)
- 예: GET /index.html HTTP/1.1
- 메서드: 클라이언트가 서버의 자원에 대해 수행할 작업의 종류(GET, POST, PUT, DELETE)
- HTTP 요청을 보낼 서버의 자원
- 보통 URI의 경로가 명시
- 예) 클라이언트가 http://www.example.com/hello?q=world로 요청 -> 요청 대상은 /hello?q=world
- 만약 하위 경로가 없더라도 요청 대상은 슬래시(/)로 표기4
- 예) 클라이언트가 http://www.example.com으로 요청 -> 요청 대상은 /
- 형식:
- 요청 헤더 (Request Headers)
- 클라이언트 정보 및 요청 세부 사항 포함
- 예:
- GET /index.html HTTP/1.1
Host: http://www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html
- GET /index.html HTTP/1.1
- 요청 본문 (Request Body)
- 선택적, 주로 POST 요청 시 사용
- 예:
username=admin&password=1234
HTTP 응답 구조
- 상태 라인 (Status Line)
- 형식:
HTTP/버전(공백)상태코드(공백)상태메시지
- 예:
HTTP/1.1 200 OK
- 형식:
- 응답 헤더 (Response Headers)
- 서버 정보 및 응답 세부 사항 포함
- 예:
Content-Type: text/html; charset=UTF-8
Content-Length: 3056
Set-Cookie: sessionId=abc123
- 응답 본문 (Response Body)
- 요청한 자원 또는 처리 결과 포함
- 예: HTML 문서, JSON 데이터 등
HTTP 리다이렉트
- 요청을 완수하기 위해 추가적인 조치가 필요한 상태
- 클라이언트가 요청한 자원이 다른 곳에 있을 때, 클라이언트의 요청을 다른 곳으로 이동시키는
- 서버가 Location 헤더로 새 주소를 응답
- 예: http://example.com → https://example.com
HTTPS (HyperText Transfer Protocol Secure)
- HTTP에 보안(SSL/TLS)을 추가한 프로토콜
- 데이터 암호화 → 도청/위변조 방지
- 공개키 기반 암호화(PKI) 사용
- 포트 번호: 443 사용 (HTTP는 80)
- 브라우저 주소창에 자물쇠 표시로 구분
- 사용 예: 온라인 쇼핑, 로그인, 금융 서비스 등
- 인증서 필요 → 신뢰된 CA가 발급
'Network' 카테고리의 다른 글
Origin, SOP, CORS (0) | 2025.05.13 |
---|---|
명령어와 설정 도구 (0) | 2025.05.13 |
네트워크 통신 방식 (0) | 2025.05.13 |
TCP, UDP, ICMP (0) | 2025.05.13 |
데이터 전송 구조와 캡슐화 (0) | 2025.05.13 |
네트워크 장비와 통신 흐름 (0) | 2025.05.13 |