[네트워크] #7 웹과 HTTP, 웹 캐시 (프록시 서버)

2023. 10. 17. 21:28·전공/네트워크
728x90
반응형

1. Web and HTTP

웹 페이지에는 HTML 파일, 이미지, 오디오 파일 등 다양한 객체들이 존재할 수 있음

웹 페이지는 HTML 파일 기반으로 이루어져 있고 HTML 파일에서 객체들에 참조함

 

HTTP (hypertext transfer protocol)

웹의 응용 계층 프로토콜은 보통 클라이언트/서버 모델을 사용

클라이언트가 HTTP 요청을 보내면 서버가 HTTP 응답을 함

클라이언트의 웹 브라우저는 이 내용을 해석해 사용자에게 보여 줌

 

TCP 사용

  1. 클라이언트가 서버(포트 80)에 대한 TCP 연결(소켓 생성)을 시작함
  2. 서버가 클라이언트의 TCP 연결을 수락
  3. 브라우저(HTTP 클라이언트)와 웹 서버(HTTP 서버) 간에 HTTP 메시지(응용 계층 프로토콜 메시지)를 교환
  4. TCP 연결 종료

 

HTTP는 상태를 저장하지 않음

서버는 과거 클라이언트 요청에 대한 정보를 유지하지 않음

서버/클라이언트가 충돌할 경우, status가 일치하지 않을 수 있음으로 조정 필요

 

HTTP 연결

비 영구 HTTP

  • 각 요청/응답 쌍이 개별 TCP 연결을 통해 전송됨
  • 여러 객체를 다운로드하려면 여러 연결이 필요

  • non-persistent HTTP ressponse time = 2RTT + file transmission time (RTT: 패킷이 클라이언트와 서버를 이동하는 시간)
  • 객체당 2개의 RTT 필요
  • 각 TCP 연결에 대한 OS 오버헤드
  • 브라우저는 참조된 객체를 가져오기 위해 종종 TCP 병렬연결

 

영구 HTTP

  • 각 요청/응답 쌍이 동일한 TCP 연결을 통해 개별 전송됨
  • 클라이언트와 서버 간 단일 TCP 연결을 통해 여러 객체 전송 가능
  • 참조된 모든 객체에 대해 하나의 RTT

 

HTTP request/response message

요청 메시지 표춘 형식 / 응답 메시지 표준 형식

status code (응답 메시지 첫 줄)

  • 200 OK - 요청 성공, 요청된 객체는 이 메시지 뒤에 존재
  • 301 Moved Permanently - 요청된 객체가 이동, 이 메시지 뒤에 새 위치 지정
  • 400 Bad Request - 서버가 요청 메시지를 이해하지 못함
  • 404 Not Found - 요청한 문서가 서버에 존재하지 않음
  • 505 - HTTP 버전 지원 안 함

 

Cookies

쿠키

서버가 사용자 접근을 제한하거나 컨텐츠를 제공 가능하게 함

웹 사이트가 쿠키를 통해 사용자를 식별

사이트에서 사용자를 추적할 수 있도록 함

 

쿠키 구성요소

  • HTTP 응답 메시지의 쿠키 헤더 줄
  • HTTP 요청 메시지의 쿠키 해더 줄
  • 사용자의 엔드 시스템에 보관되고 사용자의 브라우저에 의해 관리되는 쿠키 파일
  • 웹사이트의 백엔드 데이터베이스

 


2. 웹 캐시 (프록시 서버)

웹 캐시: 오리진 웹 서버를 대신하여 HTTP 요청을 만족시키는 네트워크 엔티티

웹 캐시는 클라이언트 요청에 대한 응답 시간을 상당히 단축 시킴

웹 캐시는 기관의 인터넷 접속 링크의 트래픽을 상당히 줄임

원래라면 15Mbps access link의 속도를 높여야 성능이 좋아지지만 비용이 너무 많이 듦

→ 100Mbps의 대역폭을 지원하는 LAN에 프록시 서버를 존재

→ 캐시가 히트(웹 캐시가 요청받은 데이터를 가지고 있음)하면 LAN 안에서 100Mbps의 대역폭으로 데이터를 보낼 수 있기 때문에 성능 향상

728x90
반응형

'전공 > 네트워크' 카테고리의 다른 글

[네트워크] #9 소켓 프로그래밍 (TCP, UDP)  (0) 2023.10.17
[네트워크] #8 전자 메일 (SMTP, 메일 전송 프로토콜)  (0) 2023.10.17
[네트워크] #6 네트워크 응용 원칙 (애플리케이션 아키텍쳐, 응용 계층 프로토콜)  (0) 2023.10.17
[네트워크] #5 성능 (손실, 지연, 처리량)  (0) 2023.10.17
[네트워크] #4 네트워크 코어 (패킷/서킷 스위칭, 인터넷 구조)  (0) 2023.10.17
'전공/네트워크' 카테고리의 다른 글
  • [네트워크] #9 소켓 프로그래밍 (TCP, UDP)
  • [네트워크] #8 전자 메일 (SMTP, 메일 전송 프로토콜)
  • [네트워크] #6 네트워크 응용 원칙 (애플리케이션 아키텍쳐, 응용 계층 프로토콜)
  • [네트워크] #5 성능 (손실, 지연, 처리량)
dev_ares
dev_ares
대학에서 컴퓨터공학을 전공하고 있는 학생입니다.
    반응형
    250x250
  • dev_ares
    노트
    dev_ares
  • 전체
    오늘
    어제
    • 분류 전체보기 (187)
      • IT 트랜드 (2)
      • 백엔드 (18)
        • Java + Spring (8)
        • Kotlin + Spring (5)
        • 백엔드 (5)
      • 프론트엔드 (1)
        • React (1)
      • 대외활동 (17)
        • 42서울 (17)
      • 백준 (6)
        • Java (2)
        • C++ (3)
      • 전공 (121)
        • 객체지향프로그래밍 (17)
        • 자료구조 (23)
        • 리눅스시스템관리 (16)
        • 컴퓨터구조 (25)
        • 네트워크 (25)
        • 데이터베이스 (15)
        • 기타 전공 (0)
      • 프로그래밍 언어 (18)
        • Java (5)
        • Swift (4)
        • C++ (1)
        • Kotlin (8)
      • 기타 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자료구조
    티스토리챌린지
    오블완
    추가 문제
    코틀린
    자바
    C++
    메모리 계층 구조
    단일 사이클
    데이터패스
    반복자
    백준
    리눅스
    컴퓨터구조
    컴공 포트폴리오
    상속
    사설 문제
    컴퓨터 구조 및 설계
    명령어
    42서울
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev_ares
[네트워크] #7 웹과 HTTP, 웹 캐시 (프록시 서버)
상단으로

티스토리툴바