정리

http

148june 2025. 3. 17. 19:05

http란?

HTTP(HyperText Transfer Protocol)웹 상에서 하이퍼텍스트 문서(HTML) 및 기타 리소스를 주고받기 위한 통신 프로토콜이다. 클라이언트(웹 브라우저)와 서버(웹 서버) 간의 요청(Request)과 응답(Response)을 기반으로 동작하며, TCP/IP 위에서 실행된다.

 

클라이언트-서버 모델

  • HTTP는 클라이언트(예: 웹 브라우저)와 서버(예: 웹 서버) 간의 요청(request)과 응답(response) 구조로 동작함.
  • 클라이언트가 요청을 보내면 서버가 응답을 반환함.

2. 무상태(Stateless) 프로토콜

  • HTTP는 상태를 유지하지 않음.
  • 각 요청과 응답은 독립적으로 처리되며, 이전 요청의 정보를 저장하지 않음.
  • 이를 보완하기 위해 쿠키(Cookie), 세션(Session), 토큰(Token) 등을 활용함.

3. 비연결(Connectionless)

  • HTTP/1.1 이전까지 요청을 보내고 응답을 받은 후 연결을 종료함.
  • HTTP/1.1부터 **Persistent Connection(지속 연결)**을 기본적으로 지원하여, 여러 요청을 하나의 연결에서 처리 가능함.

4. 텍스트 기반 프로토콜

  • 요청(Request)과 응답(Response)이 사람이 읽을 수 있는 텍스트 형식으로 구성됨.
  • 쉽게 디버깅이 가능하지만, 보안 측면에서 취약할 수 있음.

5. 메서드를 사용한 동작 구분

  • HTTP는 다양한 요청 메서드를 제공함.
    • GET : 리소스 요청
    • POST : 데이터 전송 및 리소스 생성
    • PUT : 리소스 전체 수정
    • PATCH : 리소스 일부 수정
    • DELETE : 리소스 삭제

6. URI(Uniform Resource Identifier)를 통해 리소스 지정

7. 확장성이 뛰어남

  • HTTP는 요청 및 응답 헤더를 통해 다양한 기능을 추가할 수 있음.
  • 새로운 기능이 필요하면 헤더를 확장하여 구현 가능함.

8. 보안 문제 및 HTTPS(보안 HTTP) 지원

  • 기본 HTTP는 암호화되지 않아 보안에 취약함.
  • 이를 해결하기 위해 **TLS(SSL)**을 적용한 HTTPS(HyperText Transfer Protocol Secure)를 사용함.

9. 캐시(Cache) 기능 지원

  • HTTP는 응답을 클라이언트 또는 프록시 서버에 저장하여 성능을 최적화할 수 있음.
  • Cache-Control, ETag 등의 헤더를 사용하여 캐시 정책을 설정 가능함.

10. 프록시 및 게이트웨이 사용 가능

  • HTTP는 **프록시(Proxy)**와 **게이트웨이(Gateway)**를 통해 요청을 중계할 수 있음.
  • 프록시는 보안, 캐싱, 로드 밸런싱 등의 역할을 수행함.

11. HTTP 버전별 특징

  • HTTP/1.1 : 지속 연결(Persistent Connection) 지원, 파이프라이닝(Pipelining) 도입
  • HTTP/2 : 헤더 압축, 멀티플렉싱(Multiplexing) 지원
  • HTTP/3 : UDP 기반 QUIC 프로토콜 사용, 속도 및 보안 강화