interface RequestConnectionPoint

Represents request address information is used to make a call. There are at least two possible instances: “local” is how we see request at the server application and “actual” is what we can recover from proxy provided headers.



abstract val host: String

Request host, useful for virtual hosts routing


abstract val method: HttpMethod

Request HTTP method


abstract val port: Int

Request port, for example 80 or 443


abstract val remoteHost: String

Client address or host name (generally not resolved to name for performance reasons). For io.ktor.application.ApplicationRequest.local instance could point to a proxy our application running behind. NEVER use it for user authentication as it can be easily falsified (user can simply set some HTTP headers such as X-Forwarded-Host so you should NEVER rely on it in any security checks. If you are going to use it to create a back-connection please do it with care as an offender can easily use it to force you to connect to some host that is not intended to be connected to so that may cause serious consequences.


abstract val scheme: String

Request scheme, for example “http” or “https”


abstract val uri: String

URI path with no host, port and no schema specification, but possibly with query


abstract val version: String

Protocol version string



class MutableOriginConnectionPoint : RequestConnectionPoint

Represents a RequestConnectionPoint. Every it’s component is mutable so application features could provide them