type
status
date
slug
summary
tags
category
icon
password
HTTP
HTTP(HyperText Transfer Protocol)는 웹 상에서 데이터를 주고받기 위한 프로토콜입니다. 클라이언트와 서버 간의 요청과 응답을 통해 웹 페이지를 전달합니다.
특징
- 데이터를 평문으로 전송합니다.
- 빠르고 간단하지만, 보안에 취약할 수 있습니다.
과정
HTTPS
HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 보안을 추가한 프로토콜로, 데이터 전송 시 암호화를 적용하여 보안성을 높입니다. 이를 통해 데이터가 전송 도중에 도청되거나 변조되는 것을 방지할 수 있습니다.
특징
- 데이터를 암호화하여 전송합니다.
- SSL/TLS 인증서를 사용하여 보안을 강화합니다.
- 보안이 강화되지만, 성능에 약간의 영향을 미칠 수 있습니다.
과정
버전별 변천사
HTTP/1.0
- HTTP/1.0은 1996년에 도입됨
- 각 요청마다 새로운 연결 생성
- 연결 설정에 시간 소요
- 네트워크 효율성 낮음
HTTP/1.1
- 1997년 도입
- 지속 연결(persistent connection) 도입
- 파이프라이닝(pipelining) 도입
- 네트워크 효율성 향상
- 현재 가장 널리 사용됨
HTTP/2.0
- 2015년 도입
- 멀티플렉싱(multiplexing) 도입
- 헤더 압축(header compression) 도입
- SPDY 적용
SPDY는 구글이 개발한 네트워크 전송 프로토콜로, HTTP 트래픽의 성능을 향상시키기 위해 고안되었습니다. 도입 후의 이점은 아래와 같습니다.
1. 멀티플렉싱으로 웹 페이지 로딩 속도 개선
2. 헤더 압축 + 우선 순위 지정으로 효율성 증가
HTTP/3.0
- 2020년 도입
- QUIC 프로토콜 기반
- 빠르고 안정적인 데이터 전송
- 지연 시간 감소
- 데이터 전송 신뢰성 향상
QUIC(Quick UDP Internet Connections)는 구글이 개발한 프로토콜로, 빠른 연결 설정과 신뢰성 있는 데이터 전송을 동시에 제공합니다. 주로 HTTP/3에서 사용되며, 웹 페이지 로딩 속도를 향상시키는 데 기여합니다.
프로토콜 | 특징 | 장점 | 단점 | 사용 사례 |
TCP | 연결 지향, 신뢰성 있는 데이터 전송 | 오류 복구, 흐름 제어, 순서 보장 | 설정 및 종료 시간 소요, 속도 느림 | 웹 브라우징, 이메일, 파일 전송 |
UDP | 비연결 지향, 빠른 데이터 전송 | 낮은 지연 시간, 오버헤드 적음 | 신뢰성 부족, 오류 복구 없음 | 동영상 스트리밍, 온라인 게임, 실시간 방송 |
QUIC | 연결 지향, UDP 기반, 신뢰성 있는 데이터 전송 | 빠른 연결 설정, 높은 속도, 신뢰성 보장 | 초기 지원 부족, 복잡한 구현 | HTTP/3, 웹 페이지 로딩 속도 개선 |
Status Code
2xx (성공)
요청이 성공적으로 처리되었음을 나타냅니다. 예를 들어, 200은 요청이 성공적으로 수행되었음을 의미합니다.
3xx (리다이렉션)
요청한 리소스가 다른 위치로 이동되었음을 나타냅니다. 예를 들어, 301은 리소스가 영구적으로 이동되었음을 의미합니다.
4xx (클라이언트 오류)
클라이언트의 잘못된 요청으로 인해 오류가 발생했음을 나타냅니다. 예를 들어, 404는 요청한 리소스를 찾을 수 없음을 의미합니다.
5xx (서버 오류)
서버 내부 문제로 인해 요청을 처리할 수 없음을 나타냅니다. 예를 들어, 500은 내부 서버 오류를 의미합니다.
상태 코드 | 의미 | 설명 |
200 | OK | 요청이 성공적으로 수행됨 |
201 | Created | 요청이 성공적으로 수행되었으며, 새로운 리소스가 생성됨 |
204 | No Content | 요청이 성공적으로 수행되었으나, 반환할 내용이 없음 |
301 | Moved Permanently | 요청한 리소스가 영구적으로 이동되었음 |
302 | Found | 요청한 리소스가 임시로 다른 위치에 있음 |
304 | Not Modified | 요청한 리소스가 변경되지 않았음 |
400 | Bad Request | 클라이언트의 잘못된 요청 |
401 | Unauthorized | 인증이 필요함 |
403 | Forbidden | 접근이 금지됨 |
404 | Not Found | 요청한 리소스를 찾을 수 없음 |
500 | Internal Server Error | 서버 내부 오류 |
502 | Bad Gateway | 게이트웨이 서버에서 잘못된 응답을 받음 |
503 | Service Unavailable | 서버가 일시적으로 사용 불가능함 |
504 | Gateway Timeout | 게이트웨이 서버가 응답을 받을 시간 초과 |