HTTP Server API를 사용하면 애플리케이션이 Microsoft Internet Information Server(IIS)를 사용하지 않고 HTTP를 통해 통신할 수 있습니다.
HTTP Server API는 Microsoft Internet Information Server(IIS) 없이 애플리케이션이 HTTP를 통해 통신할 수 있도록 합니다. 애플리케이션은 특정 URL에 대한 HTTP 요청을 받고, WebSocket 요청을 받고, WebSocket 응답을 보내도록 등록할 수 있습니다. HTTP Server API는 SSL 지원을 포함하므로 애플리케이션이 IIS 없이 보안 HTTP 연결을 통해 데이터를 교환할 수 있습니다. 또한 I/O completion port와 함께 작동하도록 설계되었습니다.
서버는 다음 프로토콜을 지원합니다:
기본적으로 이 구성 요소는 URL 등록을 위해 애플리케이션이 관리자 모드로 실행되어야 합니다. URL이 netsh와 같은 외부 도구를 사용하여 이미 등록된 경우, 관리자 권한 없이 실행할 수 있습니다. 관리자 권한 없이 애플리케이션을 시작할 수 있도록 BindingOptions.ConfigureSSLCertificate 속성을 비활성화하십시오.
FastMM4/FastMM5를 프로젝트의 첫 번째 unit으로 설정하십시오.
이 구성 요소를 구성하려면 아래 단계를 따르십시오:
1. 폼에 TsgcWebSocketServer_HTTPAPI 구성 요소를 놓으십시오
2. 수신 대기 주소와 포트를 정의합니다:
Server.Host := '127.0.0.1';
Server.Port := 80;
3. 허용되는 Specifications를 설정하십시오. 기본적으로 모든 specification이 허용됩니다.
RFC6455: 표준이며 권장되는 WebSocket 사양입니다.
Hixie76: 이것은 초안이며 Safari 4.2와 같은 오래된 브라우저에 대한 지원을 제공하려는 경우에만 Hixie76 연결을 설정하는 것이 권장됩니다
5. 프로시저를 생성하고 Active = true 속성을 설정합니다.
HTTP.SYS 서버는 URL 예약을 사용하여 HTTP.SYS 서버가 사용할 URL 엔드포인트를 할당합니다.
Basic URL Reservation
이것은 서버를 구성하는 가장 쉽고 간단한 모드로, 기본적으로 HTTP.SYS 서버가 처리할 Host와 Port만 설정하면 됩니다.
예제: 서버가 IP 127.0.0.1 및 포트 80에서 실행되는 경우, 다음 속성을 설정하기만 하면 됩니다
Server.Host := '127.0.0.1';
Server.Port := 80;
서버가 둘 이상의 IP에서 실행되고 여러 IP에 바인딩하려면 NewBinding 메서드를 사용하십시오. 먼저 Host 및 Bindings 속성을 지운 다음 NewBinding 메서드를 사용하여 모든 Server Binding을 정의하십시오.
Server.Host := '';
Server.Bindings.Clear;
Server.Bindings.NewBinding('127.0.0.1', 80, '');
Server.Bindings.NewBinding('80.50.55.11', 80, '');
서버가 SSL 연결을 요구하는 경우, SSL 연결을 처리하는 데 사용할 Host와 Port를 정의하려면 다음을 수행하십시오.
Server.Host := '127.0.0.1';
Server.Port := 443;
Server.SSL := True;
Server.SSLOptions.Hash := 'CERTIFICATE_HASH';
서버가 여러 IP Addresses로 SSL 연결을 요구하는 경우, 먼저 Host와 Bindings 속성을 지운 다음 새 Bindings를 등록하십시오.
Server.Host := '';
Server.Bindings.Clear;
Server.Bindings.NewBinding('127.0.0.1', 443, '', true, 'CERTIFICATE_HASH1');
Server.Bindings.NewBinding('80.50.55.11', 443, '', true, 'CERTIFICATE_HASH2');