웹 서버, 프락시

augusstt·2022년 11월 27일
0

Web

목록 보기
2/3

이 글은 "HTTP 완벽 가이드"를 읽고 이해한 내용을 복습하기 위해 작성하는 글입니다.

1. 웹 서버

  1. 커넥션

    • 클라이언트가 웹 서버에 TCP 커넥션을 요청하면 커넥션을 맺고 IP 주소를 추출하여 커넥션 반대편에 어떤 클라이언트가 있는지 확인한다.
  2. 요청 받기

    • 커넥션에 데이터가 도착하면, 네트워크 커넥션에서 데이터를 읽어들인다.

    • 요청 메시지를 파싱하면서, 메시지 헤더를 읽고, 요청 본문이 있다면 읽어들인다.

  3. 요청 처리

    • 요청으로부터 메서드, 리소스, 헤더, 본문을 얻어내어 처리한다.
  4. 리소스 접근

    • 서버 위에서 동작하는 리소스 생성 어플리케이션을 통해 만들어진 동적 컨텐츠를 제공

    • Docroot : 일반적으로 웹 서버 파일 시스템의 특별한 폴더를 웹 컨텐츠를 위해 예약해 둔 것.

  5. 응답 만들기

    • 서버가 리소스를 식별하면 요청 메서드로 서술되는 동작을 수행한 뒤 응답 반환
  6. 응답 보내기

2. 프락시

  • 프락시란?
    - 클라이언트와 서버 사이에 위치하여 사이의 HTTP 메시지를 정리.
    • 보안개선, 성능 향상, 비용 절약
  1. 프락시 서버

    • 클라이언트의 입장에서 트랙잭션을 수행하는 중개인
      프락시

    • 공유 프락시
      - 중앙 집중형 프락시를 관리하는 것이 비용효율면에서 높고 쉬움

    • 개인 프락시

    • 프락시의 부가기능
      - 보안 방화벽
      - 웹 캐시

  2. 프락시가 트래픽을 처리하는 법

    1. 클라이언트 수정
      • 만약 클라이언트가 프락시를 사용하도록 설정되어 있다면, 클라이언트는 HTTP 요청을 프락시 서버로 보낸다
    2. 네트워크 수정
    3. DNS 이름 수정
      • 웹 서버의 이름과 IP 주소 모두 프락시 서버가 사용, 모든 요청을 수신한다.
    4. 웹서버 수정
      • HTTP 리다이렉션 명령을 클라이언트에게 돌려줌으로써 요청을 프락시로 리다이렉트 할 수 있도록 설정한다. 리다이렉트를 받는 즉시, 클라이언트는 프락시와의 트랜잭션을 시작
profile
https://augusstt-note.gitbook.io/aug-note 로 블로그 이전했습니다!

0개의 댓글