# Class type Netcgi1_compat.Netcgi_env.cgi_environment

    class type cgi_environment = object .. end

    method config : cgi_config

    method cgi_gateway_interface : string

    method cgi_server_software : string

    method cgi_server_name : string

    method cgi_server_protocol : string

    method cgi_server_port : int option

    method cgi_request_method : string

    method cgi_path_info : string

    method cgi_path_translated : string

    method cgi_script_name : string

    method cgi_query_string : string

    method cgi_remote_host : string

    method cgi_remote_addr : string

    method cgi_auth_type : string

    method cgi_remote_user : string

    method cgi_remote_ident : string

    method cgi_property : ?default:string -> string -> string

    method cgi_properties : (string * string) list

    method cgi_https : bool

    method cgi_request_uri : string

I rest to be convinced we need this. Is it provided by web servers different from Apache? Why is the `#url` method not enough?

    method protocol : protocol

    method input_header : Netmime.mime_header

    method input_header_field : ?default:string -> string -> string

    method multiple_input_header_field : string -> string list

    method input_header_fields : (string * string) list

    method user_agent : string

    method cookies : (string * string) list

Cookies are returned in decoded form. An additional `#cookie` method has been added for convenience and coherence with e.g. `Netcgi.cgi.arguments` v.s. `Netcgi.cgi.argument`.

    method input_content_length : int

    method input_content_type_string : string

    method input_content_type : string * (string * Netmime_string.s_param) list

Type now is `unit -> string * (string * Netmime_string.s_param) list` to be coherent with `Netmime.mime_header_ro`.

    method input_ch : Netchannels.in_obj_channel

Not the user business.

    method input_state : input_state

Not the user business.

    method set_input_state : input_state -> unit

Not the user business.

    method output_header : Netmime.mime_header

    method output_header_field : ?default:string -> string -> string

    method multiple_output_header_field : string -> string list

    method output_header_fields : (string * string) list

    method set_output_header_field : string -> string -> unit

    method set_multiple_output_header_field : string -> string list -> unit

    method set_output_header_fields : (string * string) list -> unit

    method set_status : Nethttp.http_status -> unit

    method send_output_header : unit -> unit

    method output_ch : Netchannels.out_obj_channel

Deprecated.in favor of `out_channel` by analogy with the standard library -- even though it is a "channel object".

    method output_state : output_state

Not the user business.

    method set_output_state : output_state -> unit

Not the user business.

    method log_error : string -> unit