게이트웨이: 서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스
애플리케이션 인터페이스: 서로 다른 형식의 웹 애플리케이션이 통신하는 데 사용
터널: HTTP 커넥션을 통해 HTTP가 아닌 트래픽을 전송하는 데 사용
릴레이: 일종의 단순한 HTTP 프락시로, 한 번에 한 개의 홉에 데이터를 전달하는 데 사용
게이트웨이
: 리소스와 애플리케이션을 연결하는 역할
게이트웨이는 HTTP 트래픽을 다른 프로토콜로 자동으로 변환하여, HTTP 클라이언트가 다른 프로토콜을 알 필요 없이 서버에 접속할 수 있게 하기도 한다.
- 클라이언트 측 게이트웨이와 서버 측 게이트웨이
: 웹 게이트웨이는 한쪽에선 HTTP로 통신하고 다른 한 쪽에선 다른 프로토콜로 통신한다.
<클라이언트 프로토콜>/<서버 프로토콜>로 기술한다.
- 서버 측 게이트웨이: 클라이언트와 HTTP로 통신하고, 서버와는 외래 프로토콜로 통신
- 클라이언트 측 게이트웨이: 클라이언트와 외래 프로토콜로 통신하고, 서버와는 HTTP로 통신
- 프로토콜 게이트웨이
: 브라우저에 명시적으로 게이트웨이를 설정하여 트래픽이 게이트웨이를 거쳐가게 하거나, 게이트웨이를 대리 서버로 설정할 수 있다.
- HTTP/*: 서버 측 웹 게이트웨이
- 하는 일:
- USER와 PASS 명령을 보내 서버에 로그인
- 서버에서 적절한 디렉터리로 변경하기 위해 CWD 명령을 내린다.
- 다운로드 형식을 ASCII로 설정
- MDTM으로 문서의 최근 수정 시간을 가져온다.
- PASV로 서버에게 수동형 데이터 검색을 하겠다고 말한다.
- RETR(FTP프로토콜에 정의되어 있는 명령어)로 객체 검색
- 제어 체널에서 반환된 포트로 FTP 서버에 데이터 커넥션을 맺는다.
- HTTP/HTTPS: 서버 측 보안 게이트웨이
: 기업 내부의 모든 웹 요청을 암호화함으로써 개인 정보 보호와 보안을 제공하는데 사용
- HTTPS/HTTP: 클라이언트 측 보안 가속 게이트웨이
: 웹 서버 앞단에 위치하고, 보안 HTTPS 트래픽을 받아서 복호화하고, 웹 서버로 보낼 일반 HTTP 요청을 만든다.
- 리소스 게이트웨이
: 애플리케이션 서버는 HTTP를 통해 클라이언트와 통신하고 서버 측에 있는 애플리케이션 프로그램에 연결하는 서버 측 게이트웨이다.
애플리케이션 서버는 게이트웨이의 API를 통해 요청을 서버에서 동작하고 있는 애플리케이션에 전달한다.
(디지털 카메라 이미지, 전자상거래 애플리케이션 등)
*CGI(공용 게이트웨이 인터페이스): 애플리케이션 게이트웨이에서 유명했던 최초의 API
: 웹에서 동적인 HTML, 신용카드 처리, 데이터베이스 질의 등을 제공하는 데 사용
- 서버 확장 API
: 서버 자체의 동작을 바꾸고 싶거나 서버의 처리 능력을 최고치로 끌어 올리고자 하기 위해 제공
ex) 프론트페이지 제작자가 웹 출판 서비스를 하게 지원해주는 마이크로소프트의 프론트 서버 확장
애플리케이션 인터페이스와 웹 서비스
: 인터넷 커뮤니티는 각 웹 애플리케이션이 서로 통신하는데 사용할 표준과 프로토콜 집합을 개발하였다. (웹 서비스라고 불림)
웹 서비스는 SOAP을 통해 XML을 사용하여 정보를 교환한다.
*XML: 데이터 객체를 담는 데이터를 생성하고 해석하는 방식을 제공
*SOAP: HTTP 메시지에 XML 데이터를 담는 방식에 관한 표준
터널
: HTTP 프로토콜을 지원하지 않는 애플리케이션에 HTTP 애플리케이션을 사용해 접근하는 방법을 제공
릴레이
: HTTP 명세를 완전히 준수하지는 않는 간단한 HTTP 프락시
데이터를 맹목적으로 전달하도록 구현하기는 쉽기 때문에, 단순 필터링이나 진단, 콘텐츠 변환을 하는데 사용
(keep-alive 커넥션이 행에 걸리지 않도록 주의해야함)
=> 릴레이는 Keep-Alive에 대해 아무것도 모르기 때문에, 원 서버가 커넥션을 끊기를 기다리며 받은 데이터 전부를 클라이언트에게 전달한다. 하지만 원 서버는 릴레이가 자신에게 커넥션을 계속 맺고 있기를 요청했다고 믿기 때문에 끊지 않을 것이다. 릴레이는 커넥션이 끊길 떄를 기다리며 계속 커넥션을 맺고(hang)있게 된다.
따라서, HTTP를 제대로 준수하는 프락시를 사용하는 것이 좋다.
'개발도서 읽기 > HTTP 완벽 가이드' 카테고리의 다른 글
[2. HTTP 아키텍처] 10장) HTTP/2.0 (0) | 2021.05.09 |
---|---|
[2. HTTP 아키텍처] 9장) 웹 로봇 (0) | 2021.05.09 |
[2. HTTP 아키텍처] 7장) 캐시 (0) | 2021.05.02 |
[2. HTTP 아키텍처] 6장) 프락시 (0) | 2021.04.29 |
[2. HTTP 아키텍처] 5장) 웹 서버 (0) | 2021.04.25 |