HTTP와 네트워크에 대해

rada·2025년 8월 17일
0

개발

목록 보기
52/53

HTTP1.1, HTTP2, HTTP3 비교

HTTP/2

* 요청 병렬 처리(멀티플렉싱) → 이미지·JS·CSS 다수 로딩 시 병목 감소
* 헤더 압축(HPACK) → 반복되는 헤더 크기 최소화
* 서버 푸시(Server Push) → HTML 요청 시 필요한 CSS/JS 미리 전송

HTTP/3

* TCP 대신 QUIC(UDP 기반) → 연결 초기 지연 감소, 패킷 손실 시 재전송 최소화
* TLS 1.3 내장 → 보안 + 속도 개선
* 모바일 네트워크 환경에서 연결 끊김 방지 (IP 변경에도 연결 유지)

HTTP 캐시 동작 원리

기본 원리

  1. 브라우저 요청 → 서버 응답에 캐시 관련 헤더(Cache-Control, Expires 등) 포함
  2. 브라우저나 중간 프록시가 리소스 저장
  3. 동일 요청 시 서버 대신 캐시에서 응답 (네트워크 비용 절감, 속도 향상)

주요 헤더

헤더설명예시
Cache-Control캐시 동작 제어Cache-Control: max-age=3600, must-revalidate
Expires캐시 만료 시각(HTTP/1.0)Expires: Wed, 21 Oct 2025 07:28:00 GMT

[캐시 동작 다이어그램]

[브라우저] → 요청 → [서버]
↑ ↓
└── 캐시 HIT? ─── 응답 저장

일반 HTTP 헤더 & 보안 헤더

분류헤더설명예시
일반Cache-Control캐시 정책 설정max-age=3600
-Expires캐시 만료 시각Expires: ...
-Cookie상태 유지 데이터Cookie: sessionId=abc123
보안Authorization인증 정보 전송Authorization: Bearer <token>
-Content-Security-PolicyXSS·데이터 삽입 방지default-src 'self'; script-src 'self' https://apis.google.com

HTTP 메서드와 CRUD

CRUD메서드설명예시
CreatePOST새로운 리소스 생성POST /users
ReadGET리소스 조회GET /users/1
UpdatePUT / PATCH리소스 전체/부분 수정PUT /users/1
DeleteDELETE리소스 삭제DELETE /users/1

HTTP 요청/응답 헤더 분석

요청 헤더

  • Content-Type: 요청 바디 형식 (application/json)
  • Accept: 클라이언트가 원하는 응답 MIME 타입
  • User-Agent: 브라우저·OS 정보

응답 헤더

  • Content-Type: 응답 데이터 형식 (text/html)
  • Content-Length: 응답 바이트 길이
  • Set-Cookie: 브라우저 쿠키 저장

HTTP 상태 코드

그룹의미예시
1xx정보100 Continue
2xx성공200 OK, 201 Created
3xx리다이렉션301 Moved Permanently, 302 Found
4xx클라이언트 오류400 Bad Request, 404 Not Found
5xx서버 오류500 Internal Server Error

HTTP 요청-응답 흐름

단계

  1. URL 입력 → DNS 조회
  2. TCP/QUIC 연결
  3. 요청 전송
  4. 서버 처리
  5. 응답 반환
  6. 브라우저 렌더링

URI 구조 분석

URI 예시:
https://example.com:8080/path/to/resource?name=test#section

구성 요소설명예시
scheme프로토콜https
host서버 주소example.com
port포트 번호8080
path리소스 경로/path/to/resource
query요청 파라미터name=test
fragment문서 내 위치#section

네트워크 계층 비교

OSI 7계층TCP/IP 4계층역할
응용응용HTTP, FTP, SMTP 등
표현데이터 형식 변환, 암호화
세션연결 관리
전송전송TCP, UDP
네트워크인터넷IP, ICMP
데이터 링크네트워크 액세스Ethernet, Wi-Fi
물리케이블, 신호
profile
So that my future self will not be ashamed of myself.

0개의 댓글