5장 웹 서버

5.3 진짜 웹 서버가 하는일

1. 커넥션을 맺는다
2. 요청을 받는다
3. 요청을 처리한다.
4. 리소스에 접근한다.
5. 응답을 만든다.
6. 응답을 보낸다.
7. 트랜잭션을 로그로 남긴다.

5.5.2 커넥션 입력/출력 처리 아키텍쳐

웹 서버 아키텍처의 차이에 따라 요청을 처리하는 방식이 달라진다.

- 단일 스레드 웹 서버
한 번에 하나씩 요청을 처리한다. 트랜잭션이 완료되면 다음 커넥션이 처리된다.

- 멀티프로세스와 멀테스레드 웹 서버
여러개의 스레드가 여러 커넥션들을 처리한다.

- 다중 I/O 서버
커넥션을 다중화하여, 스레드가 여러 커넥션들을 번갈아가며 처리한다.

- 다중 멀티스레드 웹 서버
멀티스레드가 다중화된 커넥션들에 대해 조금씩 작업을 수행한다.


5.7.2 디렉터리 목록
대부분의 웹 서버는 클라이언트가 디렉터리 URL을 요청했을 때 다음과 같이 몇가지 다른 행동을 취하도록 설정할 수 있다.

- 에러를 반환
- 디렉터리 대신 특별한 '색인 파일'을 반환
- 디렉터리를 탐색해서 그 내용을 담은 HTML 페이지를 반환

5.8 응답 만들기

5.8.1 응답 엔티티
응답 메세지는 주로 다음을 포함한다.

- 응답 본문의 MIME 타입을 서술하는 Content-Type 헤더
- 응답 본문의 길이를 서술하는 Content-Length 헤더
- 실제 응답 본문의 내용

5.8.2 MIME 타입 결정하기
웹 서버에게는 응답 본문의 MIME 타입을 결정해야 하는 책임이 있다.

5.8.3 리다이렉션
웹 서버는 요청을 수행하기 위해 브라우저가 다른 곳으로 가도록 리다이렉트 할 수 있다.
리다이렉션의 응답은 3XX 상태 코드로 지칭된다.
리다이렉션은 다음의 경우에 유용하다.

- 영구히 리소스가 옮겨진 경우
- 임시로 리소스가 옮겨진 경우
- URL 증강(재작성된 URL로 리다이렉트)
- 부하 균형(로드 밸런싱)
- 친밀한 다른 서버가 있을 때
- 디렉터리 이름 정규화

 

6장 프락시 

웹 프락시 서버는 중개자이다. 클라이언트와 서버 사이에 위치하여 그들 사이의 HTTP 메세지를 정리하는
중개인처럼 동작한다.


6.1.2 프락시 대 게이트웨이
프락시는 같은 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결,
게이트웨이는 서로 다른 프로토콜을 사용하는 둘 이상을 연결.

그러나 실질적으로 프락시와 게이트웨이의 차이점은 모호하다.
프락시는 때때로 약간의 프로토콜 변환을 하기도 한다.

6.2 왜 프락시를 사용하는가?
프락시 서버는 보안을 개선하고, 성능을 높여주며, 비용을 절약한다.
그리고 모든 HTTP 트래픽을 들여다보고 건드릴 수 있기 때문에, 부가적인 가치를 주는
여러 웹 서비스를 구현하기 위해 트래픽을 감시하고 수정할 수 있다.


- 부적절한 사이트 접근 거부
- 문서 접근 제어
- 보안 방화벽
- 인기 있는 문서의 로컬 사본을 관리하고 해당 문서에 대한 요청에 대해 빠르게 제공
- 트랜스코딩 프락시 : 클라이언트가 지원하지 않는 형식의 콘텐츠를 요청할 경우, 해당 컨텐츠를 클라이언트가 지원하는 형식으로 변환하여 전송.

- 익명화 프락시 : HTTP 메세지에서 민감한 정보를 제거한다.

6.3.1 프락시 서버 배치

- 출구 프락시 : 내부 네트워크에서 인터넷으로 나가는 트래픽을 모니터링하고 필터링
(프락시가 클라이언트쪽에 위치)

- 접근(입구) 프락시 : ISP 접근 지점에 프락시가 위치.

- 대리 프락시 : 네트워크의 가장 끝에 있는 웹 서버들의 바로 앞에 위치하여
웹서버로 오는 모든 요청을 처리하고 필요할 때만 웹 서버에게 자원을 요청할 수 있다.

- 네트워크 교환 프락시
주로 다른 네트워크 간의 연결성을 개선하고 효율적인 트래픽 관리를 위해 사용된다.


6.3.3 어떻게 프락시가 트래픽을 처리하는가

- 클라이언트를 수정한다
클라이언트가 프락시를 사용하도록 설정되어 있다면, 클라이언트는 HTTP 요청을 바로 그리고
의도적으로 원 서버가 아닌 프락시로 보낸다.

- 네트워크를 수정한다
클라이언트는 모르게, 네티워크 인프라를 가로채서 웹 트래픽을 프락시로 가도록 조정할 수 있다.

- DNS 이름공간을 수정한다
대리 프락시는 웹 서버의 이름과 IP주소를 자신이 직접 사용한다.

- 웹 서버를 수정한다
리다이렉션 명령을 통해 프락시로 리다이렉트 하도록 설정할 수 있다.

+ Recent posts