PHP рд╕рдмрд╕реЗ рдЖрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЫреЛрдЯреЗ рд╣реЛрдордкреЗрдЬ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдм рд▓рд╛рдЦреЛрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдорд╛рдорд▓рд╛ рдХреЗрд╡рд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡, CGI рдФрд░ FastCGI рдореЛрдб рд╣реИрдВред
рдореИрдВ CGI рдореЛрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рдЗрд╕рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рд╕рд╛рджрдЧреА рд╣реИрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдкрд┐рдпреЛрдВ (рдмрд╛рдЗрдирд░реА рд╕рд╣рд┐рдд) рдореЗрдВ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдЗрдирд╕ рд╣реИ - рдХрд╛рдо рдХреА рдЧрддрд┐, рдЖрд╡реЗрджрди рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рд▓реЙрдиреНрдЪ рдХреЗ рдХрд╛рд░рдгред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдирдпрд╛ FastCGI рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреЙрдорди рдЧреЗрдЯрд╡реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (CGI) рдХреНрдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдХреБрдЫ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╡реЗрдм рддрдХрдиреАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЪрд░ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдВрдЧреЗред
RFC 3875 рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ CGI / 1.1 рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- AUTH_TYPE - HTTP рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдкреНрд░рдХрд╛рд░ (рдореВрд▓, рдкрд╛рдЪрди, рдЖрджрд┐) рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- CONTENT_LENGTH - POST рдпрд╛ PUT рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рд▓рдВрдмрд╛рдИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЕрдиреБрд░реЛрдз рдХреА рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рд╣реЗрдбрд░ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- CONTENT_TYPE - POST рдпрд╛ PUT рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рд╣реЗрдбрд░ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- GATEWAY_INTERFACE - CGI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдгред рдЖрдорддреМрд░ рдкрд░ "рд╕реАрдЬреАрдЖрдИ / 1.1ред"
- PATH_INFO - рд╕реАрдЬреАрдЖрдИ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдкрде рдХреЗ рдмрд╛рдж рдкрде рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдз рдЪрд░ рд╕реЗ рдкрд╣рд▓реЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/somewhere/cgiapp.exe/test/?qwerty=123" рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдпрд╣ "/ рдкрд░реАрдХреНрд╖рдг /" рд╣реЛрдЧрд╛ред
- PATH_TRANSLated PATH_INFO рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "./htdocs/test/"ред
- QUERY_STRING - рдХреНрд╡реЗрд░реА рдЪрд░ (рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрд┐рдирд╛)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдХреНрд╡рд░реНрдЯреА = 123"ред
- REMOTE_ADDR - рджреВрд░рд╕реНрде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ IP рдкрддрд╛ред
- REMOTE_HOST - рджреВрд░рд╕реНрде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдбреЛрдореЗрди рдирд╛рдоред рдЖрдо рддреМрд░ рдкрд░ REMOTE_ADDR рдХреЗ рдмрд░рд╛рдмрд░ред
- REMOTE_IDENT - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди рдбреЗрдЯрд╛ RFC 1314 рдХреЗ рдЕрдиреБрд╕рд╛рд░ред рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
- REMOTE_USER - рджреВрд░рд╕реНрде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдиреЗ HTTP рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
- REQUEST_METHOD - рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрд╛рд░ (GET, POST, PUT, рдЖрджрд┐)
- SCRIPT_NAME - CGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрде рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/somewhere/cgiapp.exe"ред
- SERVER_NAME - рд╕рд░реНрд╡рд░ рдирд╛рдо (рд╣реЛрд╕реНрдЯ рдирд╛рдо рдпрд╛ рдбреЛрдореЗрди рдирд╛рдо)ред
- SERVER_PORT - рд╕рд░реНрд╡рд░ рдЬрд┐рд╕ рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
- SERVER_PROTOCOL - рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред рдЖрдорддреМрд░ рдкрд░ "HTTP / 1.1"ред
- SERVER_SOFTWARE - рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдгред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "MyServer 1.0"ред
POST рдФрд░ PUT рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдирдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдирдкреБрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, php-cgi рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпреЗ рд╕рднреА рдЪрд░ рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ RFC рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ - SCRIPT_FILENAMEред рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/home/some-user/htdocs/test.php"ред рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ CGI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ php-cgi ("php", рдЕрд░реНрдерд╛рддреН "php-cgi"!) рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдорд╛рдирдХ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ PHP рд╣реЗрдбрд░ рдЯреНрд░рд┐рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рддреЗ рд╣реБрдП, рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдкрд╣рд▓реА рдЦрд╛рд▓реА рд▓рд╛рдЗрди рджрд┐рдЦрд╛рдИ рди рджреЗ (рдмрд╕ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджреЛ рдкрдВрдХреНрддрд┐ рдЯреВрдЯ рдЬрд╛рддреА рд╣реИ - "\ n \ n") рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЬреЛ рд╣реИ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реАрдЬреАрдЖрдИ рдореЛрдб рдореЗрдВ PHP рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдпрд╛ рдЪрд░ рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд╛рд░реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ FastCGI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреБрдЫ рднреА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ PHP рджреБрднрд╛рд╖рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
рдФрд░ рдирд┐рд░рд╛рдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╛рдо рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг (рд╡рд┐рдВрдбреЛрдЬ, рд╕реА #):
using System; using System.Diagnostics; namespace PhpApp { class Program { static void Main(string[] args) { Process php = new Process();
