HCC provides a highly flexible web-server solution for embedded systems, allowing the creation of dynamic content within a highly secure environment. Hypertext Transfer Protocol (HTTP) and its secure equivalent (HTTPS) provide communication over computer networks. They operate as request-response protocols in the client/ server model. The secure client may be a web browser, while an application hosting a website may be the secure server. HTTP resources are identified and located on the network using Uniform Resource Identifiers (URIs).

The HTTP client and server are part of HCC Embedded’s MISRA-compliant TCP/IP stack and work with both IPv4 and IPv6 networks.

HTTP Client

The HTTP client provides an API for retrieving content from a web server, supporting the GET, HEAD, POST, PUT, and DELETE methods.

The client sends an HTTP request message to the server. The server, which may provide resources such as HTML files to the client, or perform other functions for it, sends a response message back to the client. This contains completion status information about the request. It may also contain requested content within its message body.

HTTP(S) Server

The module supports HTTP Secure (HTTPS) Server when it is combined with HCC’s TLS. TLS provides the security by encrypting the whole HTTPS message, including the header and the request/response content.

The secure client sends an HTTPS request message to the secure server. The server’s response message to the client contains completion status information about the request. It may also contain requested content within the message body. The entire HTTPS message is encrypted, including the headers and the content.

Features

Both client and server:

  • Conform to the HCC Advanced Embedded Framework.
  • Compliant with HCC’s MISRA-compliant TCP/IP stack.
  • Work with both IPv4 and IPv6 networks.
  • Compliant with RFC 2818.
  • Are designed for integration with both RTOS and non-RTOS based systems.
  • Can be configured to use BSD sockets.
  • Support all standard HTTP methods: GET, PUT, POST, and DELETE.
  • Support HTTP connections.
  • Support HTTP Secure connections.
  • Handle a configurable number of simultaneous connections.
  • Have demo packages providing sample implementations to base your HTTP client or server on.

In addition, the server:

  • Supports HTTP Secure (HTTPS) connections (when used with HCC’s TLS).
  • Handles static ROMed pages.
  • Can be connected to any file system and process pages received from it.
  • Allows pages to contain dynamic content that can be created by user-specified functions.
  • Supports dynamic variables from tags in HTML.
  • Supports optional user authentication based on user name and IP address (as a sample).
  • Makes it easy to add features like web on SD card, access filtering, multi-user web authentication, and multi-language web pages.