1. 텍스트 인코딩 방식
텍스트 데이터를 컴퓨터에서 저장하고 처리할 때, 다양한 인코딩 방식이 사용됩니다. 이 중 대표적인 인코딩 방식은 ASCII와 **유니코드(UTF-8, UTF-16)**입니다.
1) ASCII
- ASCII(American Standard Code for Information Interchange)는 가장 기본적인 텍스트 인코딩 방식입니다.
- 7비트를 사용해 128개의 문자(영문 알파벳, 숫자, 기본 특수 문자 등)를 표현할 수 있습니다.
- 확장 ASCII는 8비트를 사용해 256개의 문자를 지원합니다.
- 초기 컴퓨터 시스템에서 많이 사용되었으나, 다국어를 처리하는 데 한계가 있습니다.
2) 유니코드(Unicode)
- 유니코드는 전 세계 모든 문자를 하나의 표준으로 정의한 인코딩 방식입니다.
- UTF-8과 UTF-16은 유니코드를 표현하는 방법 중 두 가지입니다.
- 가변 길이 인코딩 방식으로, 1바이트부터 최대 4바이트까지 사용하여 문자를 표현합니다.
- ASCII와 호환되며, 영어와 같이 간단한 문자들은 1바이트로 표현되지만, 다국어 문자들은 더 많은 바이트를 사용합니다.
- 웹 표준에서 가장 많이 사용되는 인코딩 방식입니다.
- 고정 길이 인코딩 방식으로, 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가 기본으로 사용되며, 더욱 강화된 보안을 제공.
요약:
- 텍스트 인코딩:
- ASCII는 기본적인 텍스트 인코딩 방식, 유니코드는 전 세계 문자를 지원.
- UTF-8은 웹 표준에서 많이 사용되며, 가변 길이 인코딩 방식.
- 이미지, 동영상 등은 이진 데이터로 처리.
- HTTP와 HTTPS:
- HTTP는 기본적으로 클라이언트-서버 요청/응답 모델.
- HTTP/1.1까지는 텍스트 기반, HTTP/2부터는 이진 데이터 전송.
- HTTPS는 HTTP에 SSL/TLS를 적용한 보안 통신 방식.
- HTTP 버전의 발전:
- HTTP/1.1은 텍스트 기반의 요청/응답.
- HTTP/2는 이진 데이터 전송, 멀티플렉싱 도입.
- HTTP/3는 UDP 기반의 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 |