1. HTTP(Hyper Text Transfer Protocol)
: 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜
- 웹 서버와 클라이언트가 리소스를 교환하기 위해 사용하는 프로토콜
- 리소스: 웹 정보 자산
- 클라이언트과 요청하면, 서버가 응답하는 방식

HTTP 메시지
: 서버와 클라이언트 간의 데이터가 교환되는 방식
- HTTP 메시지 기본 구조: HTTP 헤더(Headers) + HTTP 바디(Body)

- HTTP 헤더(Headers): 각 줄은 CRLF로 구분첫 줄은 시작 줄(Start line), 나머지 줄은 헤더(Header)라고 부름
- HTTP 바디(Body): CRLF 뒤 모든 줄 / 클라이언트, 서버에게 전송하려는 데이터가 바디에 담김
💡CRLF
- Carriage Return(CR): 커서를 현재 줄의 맨 앞으로 이동시키는 문자
- Line Feed(LF): 커서를 다음 줄로 이동시키는 문자
- 텍스트 파일에서 줄 바꿈을 나타내는 데 사용되는 제어 문자열
1) HTTP 요청 메시지: 서버에게 특정 동작을 요구하는 메시지
- 메소드(Method): 클라이언트가 수행하고자 하는 동작
- 요청 경로(path): 가져오려는 URL의 경로
- HTTP 프로토콜 버전
- HTTP 요청 메소드 종류
| 메소드 | 뜻 | 예 |
| GET | 웹 서버에 특정 리소스를 요청 | URL 입력, 정보 검색 |
| POST | 서버에 리소스를 전송 | 로그인, 회원가입 |
| PUT | 기존 데이터를 완전히 덮어쓰기 | 수정, 전체 업데이트 |
| PATCH | 기존 데이터의 일부만 수정 | 부분 업데이트 |
| DELETE | 서버에서 특정 리소스 삭제 |
💡요청 URL과 요청 경로(Path)의 차이
- 요청 URL (Request URL): 전체 URL
예) https://example.com:8080/products?category=books
- schema: https
- host: example.com
- post: 8080
- path: /products
- query: ?category=books
-요청 경로(Path): 서버에서 처리할 리소스를 지정하는 부분
- URL에서 schema://host:port를 제외한 나머지 부분 --> /products?category=books
2) HTTP 응답 메시지: HTTP 요청에 대한 결과를 반환하는 메시지
- HTTP 프로토콜 버전
- 상태 코드(Status code): 서버가 클라이언트의 요청을 처리한 후, 그 결과를 세자리수로 표현한 값
- 처리 사유(Status message): 상태 코드의 발생 이유
- 상태 코드
| 코드 | 뜻 | 예 |
| 1xx | 요청을제대로 받았고, 처리가 진행 중 | |
| 2xx | 요청이 제대로 처리됨 | 200(OK): 성공 |
| 3xx | 요청을 처리하려면, 클라이언트가 추가 동작이 필요 | 302(Found): 다른 URL로 갈 것 |
| 4xx | 클라이언트가 잘못된 요청을 보내어 처리에 실패함 | - 400(Bad Reques): 요청이 문법에 맞지 않음 - 401(Unauthorized): 클라이언트가 요청한 리소스에 대한 인증 실패 - 403(Forbidden): 클라이언트가 리소스에 요청할 권한이 없음 - 404(Not Found): 리소스가 없음 |
| 5xx | 클라이언트의 요청은 유효하지만, 서버에 에러가 발생해 처리에 실패함 | - 500(Internal Server Error): 요청 처리 중 중서버에 에러가 발생함 - 503(Service Unavailable): 서버 과부하로 인해 요청 처리 불가능 |
2. HTTPS(HTTP over Secure socket layer)
:
HTTP 프로토콜의 암호화된 버전
- TLS(Transport Layer Security) 프로토콜을 도입해 암호화
- 클라이언트와 서버 간의 메시지를 암호화 해 HTTP의 보안성을 강화함
- HTTP와 HTTPS의 차이점
| HTTP | HTTPS |
| 평문 전달(제 3자가 해석 가능) | 대칭키를 통해 암호화(제 3자가 해석 불가능) |
| 무결성 보장 X (데이터 전송 중 변경, 조작될 위험 존재) | 무결성 보장 (메시지 다이제스트 사용) |
| 서버의 신원 확인기능 X | 인증 기관(CA)에의해 발급된 서버 증서를 이용해 서버의 신원 확인 가능 |
| 포트 번호 80 |
포트 번호 443 |
- 무결성: 부적절한 정보의 변경이나 파기 없이 정확하고 안전하게 보존되는 것
💡메시지 다이제스트(message digest)
- 각 메시지마다 고유하게 산출되로독 만든 간단한 문자열
- 임의의 길이의 메시지를 단방향 해시 함수로 반복 작용해 축약한 일정한 길이의 비트열로 만들어 표현
- 데이터 무결성: 데이터를 변경하면 메시지 다이제스트도 변경되므로 데이터의 무결성 검증 가능
- 고유성: 원본 데이터에 대해 생성된 메시지 다이제스트는 고유함
- 암호화 어플리케이션: 디지털 서명, 메시지 인증 코드(MAC), 해시 기반 메시지 인증코드(HMAC) 등 다양한 암호화 기술에서 사용됨
출처: 드림핵, Mdn web docs
'Web > 기초' 카테고리의 다른 글
| JDK21 설치와 환경 변수 설정 (0) | 2025.10.23 |
|---|---|
| OWASP ZAP 설치 및 사용법(Active Scan) (0) | 2025.10.23 |
| BootStrap 부트스트랩 설치 및 적용 (0) | 2025.10.23 |
| [Web] Google Cloud에 Docker 이미지 배포하기 (0) | 2025.09.03 |
| [Web] 쿠키(Cookie) & 세션(Session) (0) | 2025.05.28 |