type=page
status=published
title=create-http
next=create-http-health-checker.html
prev=create-file-user.html
~~~~~~

= create-http

[[create-http-1]][[GSRFM00025]][[create-http]]

== create-http

Sets HTTP parameters for a protocol

[[sthref227]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-http [--help]
--default-virtual-server virtual-server
[--request-timeout-seconds timeout]
[--timeout-seconds timeout]
[--max-connection max-keepalive]
[--dns-lookup-enabled={false|true}]
[--servername server-name]
[--target target]
protocol-name
----

[[sthref228]]

=== Description

The `create-http` subcommand creates a set of HTTP parameters for a
protocol, which in turn configures one or more network listeners. This
subcommand is supported in remote mode only.

[[sthref229]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--default-virtual-server`::
  The ID attribute of the default virtual server for the associated
  network listeners.
`--request-timeout-seconds`::
  The time in seconds at which the request times out. If you do not set
  this option, the request times out in 30 seconds.
`--timeout-seconds`::
  The maximum time in seconds for which a keep alive connection is kept
  open. A value of `0` or less means keep alive connections are kept
  open indefinitely. The default is `30`.
`--max-connection`::
  The maximum number of HTTP requests that can be pipelined until the
  connection is closed by the server. Set this property to `1` to
  disable HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and
  pipelining. The default is `256`.
`--dns-lookup-enabled`::
  If set to `true`, looks up the DNS entry for the client. The default
  is `false`.
`--servername`::
  Tells the server what to put in the host name section of any URLs it
  sends to the client. This affects URLs the server automatically
  generates; it doesn't affect the URLs for directories and files stored
  in the server. This name should be the alias name if your server uses
  an alias. If a colon and port number are appended, that port will be
  used in URLs that the server sends to the client.
`--target`::
  Creates the set of HTTP parameters only on the specified target. Valid
  values are as follows:

  `server`;;
    Creates the set of HTTP parameters on the default server instance.
    This is the default value.
  configuration-name;;
    Creates the set of HTTP parameters in the specified configuration.
  cluster-name;;
    Creates the set of HTTP parameters on all server instances in the
    specified cluster.
  standalone-instance-name;;
    Creates the set of HTTP parameters on the specified standalone
    server instance.

[[sthref230]]

=== Operands

protocol-name::
  The name of the protocol to which this HTTP parameter set applies.

[[sthref231]]

=== Examples

[[GSRFM476]][[sthref232]]

==== Example 1   Using the `create-http` Subcommand

The following command creates an HTTP parameter set for the protocol
named `http-1`:

[source]
----
asadmin> create-http --timeout-seconds 60 --default-virtual-server server http-1
Command create-http executed successfully.
----

[[sthref233]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref234]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-network-listener.html#create-network-listener-1[`create-network-listener`(1)],
link:create-protocol.html#create-protocol-1[`create-protocol`(1)],
link:create-virtual-server.html#create-virtual-server-1[`create-virtual-server`(1)],
link:delete-http.html#delete-http-1[`delete-http`(1)]


