HTTP

Function

Test any RFC URL (HTTP, HTTPS etc)

Alarming

Response code, Connection time, Transfer time, Content matches, Certificate valid

HTTP detail

HTTP parameters

Parameter

Description

Url

RFC URL (HTTP, HTTPS etc)

Username

Enter a username in case the URL requires authentication. To test if a webpage accepts username and password as set in the SKOOR Engine specific fields, enter the URL the following way:

http://<username>:<password>@URL

Password

Enter a password in case the URL requires authentication.

Method

Choose from one of the following request methods:

GET (default)
PUT (Update)
POST
DELETE

If either PUT or POST are selected, an additional Data text field is enabled.

Data

Only visible if either PUT or POST Method is chosen. Allows entering the body of the PUT/POST request.

Authentication

Choose from one of the following authentication types:

Any (selected by libcurl) (default)
Any except Basic
Basic
Digest
Digest with IE flavor
Negotiate (SPNEGO)
NTLM

Proxy address

It is possible to test a URL via a proxy. If this field is used, the request goes through the proxy. Unlike with normal HTTP requests, the time of the connection setup to the proxy is included in this measurement. The total time including site download is faster if it is cached on the proxy.

Proxy port

Proxy port number

Proxy username

Enter proxy username

Proxy password

Enter proxy password

Proxy authentication

Choose the authentication type against the proxy. See Authentication parameter above.

Timeout

Timeout in seconds (default is 120 s) before responding with a warning state that the webpage is not available

Content check

Check text content within the downloaded document. Regular expressions are supported.

Follow redirects

Enable this checkbox if redirects should be followed (up to 50 redirects)

Show expiration of certificate

Enable this checkbox to check SSL certificate expiration. This allows configuring alarm limits at a certain number of days before certificates will expire.

Suppress connection time
Suppress transfer time

If one of these checkboxes is checked, the connection time and/or transfer time of each check is not saved to the database and their values are no longer visible in the values section. Their value is also no longer available for use in alarm limit specifications.

SSL/TLS version

Choose from one of the following implementations:

Default
TLSv1
SSLV2
SSLV3

The default setting depends on the operating system’s configuration.

Verify peer

For HTTPS connections the web server certificate can be compared to a certificate file stored on the collector. Enable this option to check if the web server’s SSL certificate is authentic, i.e. that one can trust that the server is who the certificate says it is. If this field is enabled, the server’s correct certificate file must be stored on SKOOR Engine (see next parameter Certificate file). The stored certificate is compared to the certificate issued by the server when the HTTP job is run.

Certificate file

Only visible if the Verify peer parameter above is set to Certificate must be authentic. Enter the name of the certificate file (e.g. host.crt) that the server’s certificate is compared against. Certificate files must be first copied to the SKOOR Engine under its /opt/eranger/collector/certificates directory. The path can be changed by editing the http_cert_path variable in the eranger-collector.cfg file.

Verify host

Only visible if the Verify peer parameter above is set to Certificate must be authentic. Select Verification must be successful to check if the common name (CN) specified in the web server’s certificate corresponds to the server’s URL.

HTTP header

Enter any HTTP header(s) that SKOOR Engine should send with the request. This is useful mostly for changing the requested language of the web page or to change the user agent with which SKOOR Engine identifies itself to the web server. The default user agent is: “SKOOR Engine Monitoring Agent" if that header is not defined. The Wikipedia link right next to the header text field leads to the Wikipedia page describing all available HTTP headers.

Save content to file

Define a filename where the output of the request will be written to.

Tags can be used, for example $DEVICE_ADDRESS$. Depending on the filename's suffix (.txt or .html) the browser will render the page differently when clicking on the file link. Specifying a well defined filename comes handy if the output will be analysed by a following parsefile job. An output file of the name <http_NNN_NNN.txt> will be created if this field is left empty, where N are integers randomly generated at initial job creation. Specify only the filename without any file path component. By default it will be stored below /var/opt/run/eranger/collector/tmp.

The Tags dropdown list allows entering pre-defined variables into the fields above, e.g. $NAME$ for the name of the job.

If needed for a job configuration, parameters can be URL encoded or decoded using the URL Encode/Decode helper in the jobs footer:

HTTP values and alarm limits

Value / Alarm limit

Description

Response code

Use the webserver's response code as an alarm limit. Normal accepted return codes are:

200 OK and 302 Found

But any other value can be checked.

Here's a list of the most often used response codes:

100 Continue

This means that the server has received the request headers, and that the client should proceed to send the request body (in the case of a request for which a body needs to be sent; for example, a POST request). If the request body is large, sending it to a server when a request has already been rejected based upon inappropriate headers is inefficient. To have a server check if the request could be accepted based on the request's headers alone, a client must send Expect: 100-continue as a header in its initial request and check if a 100 Continue status code is received in response before continuing (or receive 417 Expectation Failed and not continue).

200 OK

Standard response to successful HTTP requests.

201 Created

The request has been fulfilled and resulted in a new resource being created.

202 Accepted

The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place.

301 Moved Permanently

This and all future requests should be directed to the given URL

302 Found

This is the most popular redirect code, but also an example of industrial practice contradicting the standard. HTTP/1.0 specification required the client to perform a temporary redirect (the original describing phrase was "Moved Temporarily"), but popular browsers implemented it as a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to disambiguate between the two behaviours. However, the majority of Web applications and frameworks still use the 302 status code as if it were the 303.

305 Use Proxy (since HTTP/1.1)

Many HTTP clients (such as Mozilla and IE) don't correctly handle responses with this status code, primarily for security reasons.

307 Temporary Redirect

In this occasion, the request should be repeated with another URI, but future requests can still use the original URI. In contrast to 303, the request method should not be changed when reissuing the original request. For instance, a POST request must be repeated using another POST request.

400 Bad Request

The request contains bad syntax or cannot be fulfilled.

401 Unauthorized

Similar to 403 Forbidden, but specifically for use when authentication is possible but has failed or not yet been provided. 

403 Forbidden

The request was a legal request, but the server is refusing to respond to it. Unlike a 401 Unauthorized response, authenticating will make no difference.

404 Not Found  

The requested resource could not be found.

405 Method Not Allowed

A request was made of a resource using a request method not supported by that resource; for example, using GET on a form which requires data to be presented via POST, or using PUT on a read-only resource.

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

Client failed to continue the request — except during playing Adobe Flash videos where it just means the user closed the video window or moved on to another video.

409 Conflict

410 Gone

Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed; however, in practice, a 404 Not Found is often issued instead.

411 Length Required

412 Precondition Failed

413 Request Entity Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Requested Range Not Satisfiable

The client has asked for a portion of the file, but the server cannot supply that portion (for example, if the client asked for a part of the file that lies beyond the end of the file).

417 Expectation Failed

421 There are too many connections from your internet address

422 Unprocessable Entity

The request was well-formed but was unable to be followed due to semantic errors.

423 Locked (WebDAV)

The resource that is being accessed is locked

424 Failed Dependency (WebDAV)

The request failed due to failure of a previous request (e.g. a PROPPATCH).

425 Unordered Collection

Defined in drafts of WebDav Advanced Collections, but not present in "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol".

426 Upgrade Required

The client should switch to.

449 Retry With

A Microsoft extension: The request should be retried after doing the appropriate action..

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Gateway Timeout

505 HTTP Version Not Supported

506 Variant Also Negotiates

507 Insufficient Storage

509 Bandwidth Limit Exceeded

This status code, while used by many servers, is not an official HTTP status code.

510 Not Extended

Connection time

Time until the TCP connection to the server is set up (in ms). SSL handshake is not calculated.

Transfer time

Time until a webpage is served and the connection is closed (in ms)

Content matches

Set limits according to the number of times a string or regular expression is found in
the content of the tested web page

Certificate valid

The number of days until the remote SSL certificate expires.

Error code

Generic job error code (see section Job error codes)

HTTP examples

Example 1 - Test a webpage

Test a webpage on the default port (80) and use the $DEVICE_ADDRESS$ tag. This way, the job or device can be copied without editing the job parameters itself, only the job name differs.

Url

http://$DEVICE_ADDRESS$

Follow redirects

Enable

Output 1