FCL-웹
FCL-WebFCL-Web은[1] Free Pascal의 Free Component Library(FCL)의 일부로서 웹(관련) 애플리케이션 개발에 중점을 두고 있습니다.이 패키지는 사용자가 Apache 모듈뿐만 아니라 CGI, Fast CGI 및 임베디드 웹 서버 응용 프로그램을 개발할 수 있도록 지원합니다.HTTP(S) 프로토콜과 다소 낮은 수준의 웹 응용 프로그램 프레임워크를 웹 모듈 형태로 구현하는 장치를 제공합니다.일부 콘텐츠 제작자(예: 데이터 집합에서 자동 콘텐츠 생성)도 제공됩니다.다른 중요한 용도는 웹 서비스(JSON-RPC 사용)와 데이터를 주고받는 것입니다.
웹 응용 프로그램 지원 유닛
fpcgi, fpfcgi, fphttpapp 및 fpapache[24]는 각각 CGI, Fast CGI, 임베디드 웹 서버 및 Apache 모듈을 구현하는 유닛입니다.장치 간의 인터페이스는 객체 지향 상속을 이용하여 유사합니다.따라서 uses 조항의 중고 유닛 변경은 어플리케이션의 나머지 대부분에 대한 코드 변경 없이 4종류의 웹 어플리케이션을 모두 작성하기에 충분합니다.주목할 만한 예외는 Fast CGI 및 임베디드 웹 서버용 포트를 설정해야 하는 경우가 있습니다.
기타 유닛
- httpdefs 유닛은 쿠키, 세션, 파일 업로드, MIME 처리, HTTP 헤더, 요청 및 응답의 기본 클래스를 정의합니다.
- iniwebsession 유닛은 .ini 파일을 사용하여 세션 관리를 구현합니다.
- fphttpserver 유닛은 멀티스레드 대응 스탠드아론 http 서버를 즉시 사용할 수 있습니다.
- fphttpclient 유닛은 http 요청을 전송하고 응답을 가져오는 클래스를 제공합니다.사용 가능한 모든 HTTP 1.1 메서드가 구현됩니다.\
- fphtml 유닛은 콘텐츠 제작자를 제공합니다.
- fphttp 유닛은 웹 모듈을 사용하여 추상적인 웹 프레임워크 지원을 제공합니다.
- fpweb 유닛은 fphttp의 추상적인 웹 프레임워크 구현을 제공합니다.
fpWeb 프레임워크
fpWeb은 fcl-web 유닛 위에 구축된 프레임워크이며 fcl-web의 일부입니다.아키텍처는 매우 모듈러형이며, Lazarus에서 사용하기 위한 RAD 패키지를 사용할 수 있습니다.fpWeb 애플리케이션은 1개 이상의 웹 모듈과 각 모듈에 대해 1개 이상의 웹 액션을 옵션으로 제공합니다.
이 프레임워크에서는 다음 형식으로 스태틱라우팅을 사용합니다.
<base URL>/<module name>[/<action name>]
<module name>는 인수로 지정된 이름에서 결정됩니다.RegisterHTTPModule통화중<action name>는 각 모듈의 액션 맵에 있는 키에서 결정됩니다.대신 GET 스타일라우팅도 지원됩니다.
<base URL>/?module=<module name>[&action=<action name>]
문자열 "module" 및 "action"은 다음 방법으로 구성할 수 있습니다.ModuleVariable그리고.ActionVar,각각 다음과 같다.
요구 처리는 다음 알고리즘을 사용하여 캐스케이드 방식으로 이루어집니다.
- 모듈의 요청 핸들러(TFP Web Module)를 실행합니다.OnRequest)
- 요구가 처리되는 경우(TFP Web Module).OnRequest Handled 파라미터가 true로 설정되어 있는 경우) 응답을 송신합니다.
- 그렇지 않으면 요청 처리를 웹 작업에 위임합니다.
- 웹 검색 액션은 현재 요청 경로에 대응합니다.옵션으로 리다이렉션/재작성(TFP Web Module)을 사용합니다.OnGetAction)
- 발견된 경우 웹 작업의 요청 처리기(TFP Web Action)를 실행합니다.OnRequest)
- 요구가 처리되는 경우(TFP Web Action).OnRequest Handled 파라미터가 true로 설정되어 있는 경우) 응답을 송신합니다.
- 그렇지 않으면 처리되지 않은 요청 발생 예외
- 그렇지 않으면 처리되지 않은 요청 발생 예외
레퍼런스
추가 정보
- 레오나르도 M. 라메: Lazarus 서버
- Leonardo M. Ramé: 객체 파스칼을 사용한 웹 프로그래밍
- Michael Van Canneyt: 웹을 위한 Lazarus
- Michael Van Canneyt: Lazarus에서 심플한 웹 서버 만들기
- Mario Ray Mahardhika: 기본 fpWeb 튜토리얼