IPP is implemented using the Hypertext Transfer Protocol (HTTP) and inherits all of the HTTP streaming and security features. For example, authorization can take place via HTTP's Digest access authentication mechanism, GSSAPI, or any other HTTP authentication methods. Encryption is provided using the TLS protocol-layer, either in the traditional always-on mode used by HTTPS or using the HTTP Upgrade extension to HTTP (RFC 2817). Public key certificates can be used for authentication with TLS. Streaming is supported using HTTP chunking. The document to be printed is usually sent as a data stream, and can be in various formats, such as PDF or JPEG, depending on the capabilities of the destination printer.