STUDY

HTTP 프로토콜 & 운영체제

Lim임 2026. 1. 28. 02:50

HTTP 프로토콜의 진화

HTTP/1.0

특징

  • 한 연결당 하나의 요청만 처리
  • 매번 TCP 3-웨이 핸드셰이크 필요 → RTT 증가

문제 해결 방법

  • 이미지 스플리팅: 여러 이미지를 하나로 합쳐 다운로드 후 CSS background-position으로 표시
  • 코드 압축: 개행 문자, 빈칸 제거로 코드 크기 최소화
  • Base64 인코딩: 이미지를 문자열로 변환 (단, 크기 37% 증가)

HTTP/1.1

개선 사항

  • keep-alive 옵션: 한 번의 TCP 연결로 여러 요청 처리 가능
  • 표준화된 keep-alive (HTTP/1.0에서는 비표준)

한계

  • HOL Blocking: 특정 요청이 느리면 뒤의 요청이 대기
  • 무거운 헤더: 쿠키 등 메타데이터가 압축되지 않음

HTTP/2

핵심 기능

  1. 멀티플렉싱

    • 여러 스트림을 병렬 처리
    • 특정 스트림 패킷 손실 시 해당 스트림만 영향
    • HOL Blocking 해결
  2. 헤더 압축

    • HPACK 압축 형식 (허프만 코딩 알고리즘)
    • 빈도 높은 정보는 적은 비트, 낮은 정보는 많은 비트 사용
  3. 서버 푸시

    • 클라이언트 요청 없이 서버가 리소스 전송
    • 예: HTML 읽으면서 CSS 파일 먼저 푸시
  4. 요청 우선순위 처리


HTTPS (HTTP/2 기반)

SSL/TLS 보안

  • 애플리케이션 계층과 전송 계층 사이에 SSL/TLS 계층 추가
  • 통신 암호화, 제3자 도청·변조 방지

핵심 메커니즘

  1. 보안 세션: TLS 핸드셰이크로 생성 (1-RTT)
  2. 사이퍼 슈트: 프로토콜 + AEAD 사이퍼 모드 + 해싱 알고리즘
    • 예: TLS_AES_128_GCM_SHA256
  3. 인증 메커니즘: CA 발급 인증서 기반 공개키 제공
  4. 키 교환: Diffie-Hellman 알고리즘으로 PSK 생성
  5. 해싱: SHA-256, SHA-384 알고리즘

SEO 이점

  • 구글은 HTTPS 사이트에 SEO 순위 우대
  • 캐노니컬 설정, 메타 태그, 페이지 속도, 사이트맵 관리 필수

HTTP/3

혁신적 변화

  • UDP 기반 QUIC 프로토콜 사용 (TCP 대신)
  • 1-RTT 연결 설정: 3-웨이 핸드셰이크 제거
  • 멀티플렉싱 유지
  • FEC (순방향 오류 수정): 열악한 네트워크에서도 낮은 패킷 손실률

운영체제 (OS)

운영체제의 역할

  1. CPU 스케줄링 및 프로세스 관리

    • CPU 소유권 할당, 프로세스 생성·삭제, 자원 할당·반환
  2. 메모리 관리

    • 한정된 메모리를 프로세스에 효율적으로 할당
  3. 디스크 파일 관리

    • 파일 저장 방식 관리
  4. I/O 디바이스 관리

    • 마우스, 키보드 등 I/O 디바이스와 데이터 송수신 관리

운영체제의 구조

[유저 프로그램]
      ↓
    [GUI]
      ↓
  [시스템콜] ← 커널 접근 인터페이스
      ↓
   [커널] ← OS 핵심 (보안, 메모리, 프로세스 관리)
      ↓
  [드라이버]
      ↓
 [하드웨어]

시스템콜 (System Call)

정의

  • 유저 프로그램이 커널에 접근하기 위한 인터페이스
  • I/O 요청, 파일 시스템 접근 등에 사용

동작 과정

  1. 유저 모드에서 I/O 요청 (예: fs.readFile())
  2. 시스템콜 호출 → modebit 1 → 0 (유저 모드 → 커널 모드)
  3. 커널 모드에서 파일 읽기
  4. modebit 0 → 1 (커널 모드 → 유저 모드)
  5. 유저 프로그램 로직 계속 수행

modebit

  • 0: 커널 모드 (모든 자원 접근 가능)
  • 1: 유저 모드 (제한적 접근)

인터럽트 (Interrupt)

정의

  • 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것

종류

  1. 하드웨어 인터럽트: 키보드, 마우스 등 I/O 디바이스
  2. 소프트웨어 인터럽트 (트랩): 프로세스 오류, 시스템콜 호출

처리 과정

  • 인터럽트 발생 → 인터럽트 벡터 → 인터럽트 핸들러 함수 실행

컴퓨터의 핵심 요소

CPU (Central Processing Unit)

  • 제어장치: 명령어 읽기·해석, 데이터 처리 순서 결정
  • 레지스터: CPU 내 초고속 임시 기억장치
  • 산술논리연산장치 (ALU): 산술·논리 연산 수행

DMA 컨트롤러

  • I/O 디바이스가 메모리에 직접 접근하도록 지원
  • CPU 부하 감소, CPU와 동시 작업 방지

메모리 (RAM)

  • 데이터, 상태, 명령어 기록
  • 크기가 클수록 많은 작업 동시 수행 가능

타이머

  • 프로그램 실행 시간 제한

디바이스 컨트롤러

  • I/O 디바이스의 작은 CPU
  • 로컬 버퍼: 디바이스 데이터 임시 저장

'STUDY' 카테고리의 다른 글

운영체제 - 메모리, 프로세스와 스레드  (0) 2026.02.03
파이프라인 모니터링 클러스터 모니터링  (0) 2026.02.01
네트워크  (0) 2026.01.13
프로그래밍 패러다임  (0) 2026.01.06
디자인 패턴  (0) 2026.01.06