본문 바로가기
Network Study

텍스트 인코딩 방식과 HTTP의 발전

by xogns93 2024. 9. 29.

1. 텍스트 인코딩 방식

텍스트 데이터를 컴퓨터에서 저장하고 처리할 때, 다양한 인코딩 방식이 사용됩니다. 이 중 대표적인 인코딩 방식은 ASCII와 **유니코드(UTF-8, UTF-16)**입니다.

1) ASCII

  • ASCII(American Standard Code for Information Interchange)는 가장 기본적인 텍스트 인코딩 방식입니다.
  • 7비트를 사용해 128개의 문자(영문 알파벳, 숫자, 기본 특수 문자 등)를 표현할 수 있습니다.
  • 확장 ASCII는 8비트를 사용해 256개의 문자를 지원합니다.
  • 초기 컴퓨터 시스템에서 많이 사용되었으나, 다국어를 처리하는 데 한계가 있습니다.

2) 유니코드(Unicode)

  • 유니코드는 전 세계 모든 문자를 하나의 표준으로 정의한 인코딩 방식입니다.
  • UTF-8UTF-16은 유니코드를 표현하는 방법 중 두 가지입니다.
    • 가변 길이 인코딩 방식으로, 1바이트부터 최대 4바이트까지 사용하여 문자를 표현합니다.
    • ASCII와 호환되며, 영어와 같이 간단한 문자들은 1바이트로 표현되지만, 다국어 문자들은 더 많은 바이트를 사용합니다.
    • 웹 표준에서 가장 많이 사용되는 인코딩 방식입니다.
    b) UTF-16:
    • 고정 길이 인코딩 방식으로, 2바이트 또는 4바이트를 사용해 문자를 표현합니다.
    • UTF-16은 전 세계의 문자들을 더 효율적으로 처리할 수 있지만, UTF-8보다 공간을 더 많이 차지하는 경우가 있습니다.
  • a) UTF-8:

3) 이진 데이터(Binary Data)

텍스트 외에도 이진 데이터(Binary Data)가 있습니다. 이미지, 동영상, 오디오 파일 같은 데이터는 텍스트가 아닌 이진 형식으로 저장됩니다. 예를 들어:

  • JPEG: 손실 압축 방식의 이미지 파일 형식입니다.
  • BMP: 비트맵(Bitmap) 형식으로, 압축하지 않은 픽셀 데이터를 그대로 저장하는 이미지 형식입니다. 비트맵은 각 픽셀에 해당하는 데이터를 저장해, 고주파(색상 변화가 큰 영역에서 발생하는 신호) 정보를 포함해 이미지를 표현합니다.
    • BMP는 파일 크기가 크고, 압축되지 않은 형식이지만, 이미지가 픽셀 단위로 저장되므로 매우 정확한 정보를 제공합니다.

2. HTTP와 HTTPS

HTTP(HyperText Transfer Protocol)는 **클라이언트(브라우저)**와 서버 간의 데이터 통신 프로토콜입니다. HTTP는 데이터를 주고받을 때, 처음부터 텍스트 기반으로 설계되었습니다.

1) HTTP/1.1까지의 특징

  • HTTP/1.1까지는 주로 텍스트 기반으로 데이터를 주고받았습니다. 즉, 요청과 응답 모두 헤더와 바디가 텍스트 형식으로 이루어져 있었습니다.
  • HTTP/1.1에서는 요청마다 새로운 연결을 맺는 문제(비효율성)를 개선하여, **지속 연결(persistent connection)**을 도입해 성능을 개선했습니다.

2) HTTP/2부터의 변화

  • HTTP/2부터는 성능 최적화를 위해 이진 데이터 전송을 도입했습니다. 즉, HTTP/2부터는 텍스트 기반이 아닌 이진 형식으로 데이터가 전송됩니다. 이를 통해 데이터 전송이 훨씬 효율적이고 빠르게 이루어집니다.
  • 멀티플렉싱헤더 압축 등 성능 최적화 기능도 추가되었습니다.

3) HTTPS의 등장

  • HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 SSL/TLS 프로토콜을 결합한 보안 통신 방식입니다.
  • HTTP/2부터는 HTTPS가 사실상 기본으로 사용되며, 대부분의 웹 통신에서 데이터를 암호화하여 전송합니다. 이는 데이터 도청이나 위변조를 방지하는 역할을 합니다.

3. HTTP 버전의 발전

HTTP는 여러 차례의 발전을 통해 성능보안이 크게 향상되었습니다.

1) HTTP/1.1

  • 기본적인 텍스트 기반의 요청/응답 방식.
  • 지속 연결을 통해 성능 개선.
  • 파이프라이닝을 도입하여 여러 요청을 동시에 처리할 수 있었으나, 널리 사용되지는 않았음.

2) HTTP/2

  • 이진 데이터 전송을 도입해 성능을 크게 개선.
  • 멀티플렉싱을 통해 하나의 연결에서 여러 요청을 동시에 처리.
  • 헤더 압축을 통해 네트워크 대역폭 절약.
  • 서버 푸시 기능으로 클라이언트가 요청하지 않은 리소스를 미리 전송 가능.
  • HTTPS가 사실상 기본으로 사용됨.

3) HTTP/3

  • UDP 기반의 QUIC 프로토콜을 사용해 더 빠르고 안정적인 연결을 지원.
  • 헤드 오브 라인 블로킹 문제 해결.
  • 연결 설정 속도가 빨라져 모바일 환경에서도 성능이 개선됨.
  • 역시 HTTPS가 기본으로 사용되며, 더욱 강화된 보안을 제공.

요약:

  1. 텍스트 인코딩:
    • ASCII는 기본적인 텍스트 인코딩 방식, 유니코드는 전 세계 문자를 지원.
    • UTF-8은 웹 표준에서 많이 사용되며, 가변 길이 인코딩 방식.
    • 이미지, 동영상 등은 이진 데이터로 처리.
  2. HTTP와 HTTPS:
    • HTTP는 기본적으로 클라이언트-서버 요청/응답 모델.
    • HTTP/1.1까지는 텍스트 기반, HTTP/2부터는 이진 데이터 전송.
    • HTTPS는 HTTP에 SSL/TLS를 적용한 보안 통신 방식.
  3. HTTP 버전의 발전:
    • HTTP/1.1은 텍스트 기반의 요청/응답.
    • HTTP/2는 이진 데이터 전송, 멀티플렉싱 도입.
    • HTTP/3UDP 기반의 QUIC 프로토콜 사용, 성능 및 보안 크게 향상.

'Network Study' 카테고리의 다른 글

쿠키, 세션, JSON 웹 토큰(JWT)  (1) 2024.09.30
HTTP, HTTP/2, HTTP/3의 차이점  (1) 2024.09.30
HTTP 요청/응답 구조 (프로토콜, 메서드)  (1) 2024.09.27
HTTP와 HTTPS  (2) 2024.09.27
TCP 통신 TEST  (1) 2024.09.27