Server Applications
- Fat JAR
- Server Applications
- Packing
- Proguard
- WAR (Servlet Container)
- Containers
- Hosting
- What is an Application?
- Authenticating Clients
- Enable Automatic HEAD Responses
- Saving Time with Automatic Reloading
- Basic and Form authentication
- Controlling cache headers
- CallId
- Log the client requests
- ApplicationCall
- Certificates
- Client/Server Sessions
- Enable HTTP Compression Facilities
- Easy '304 Not Modified' Responses
- Configuring the Server
- Content conversion based on Content-Type and Accept headers
- Cookie/Header Sessions
- Enable Cross-Origin Resource Sharing (CORS)
- Data Conversion
- Send Headers Automatically
- Deployment
- Digest authentication
- DoubleReceive for request body
- Running Server Application
- How to differentiate between environments
- XForwardedHeaderSupport (Reverse Proxy Support)
- Using Freemarker Templates
- Google App Engine
- JSON support using Gson
- Heroku
- Enable HTTP Strict Transport Security
- Emit HTML with a DSL
- Redirect HTTP requests to HTTPS
- JSON support using Jackson
- JWT and JWK authentication
- LDAP authentication
- What Happens in a Server?
- Type-safe Routing
- Logging in Ktor
- Metrics with Micrometer metrics
- Metrics with Dropwizard metrics
- Using Mustache Templates
- OAuth authentication
- Streaming Movies and Other Content
- Raw Sockets
- Handling HTTP Requests
- Generating HTTP Responses
- Structured Handling of HTTP Requests
- Using a Self-Signed Certificate
- JSON support using kotlinx.serialization
- Session Serializers
- Handle Conversations with Sessions
- Add an URL for shutting down the server
- Serving Static Content
- Handle Exceptions and Customize Status Pages
- Session Storages
- Building Complex Servers
- Templates
- Testing Server Applications
- Using Thymeleaf Templates
- Session Transformers
- Handling HTTP Uploads
- Using Velocity Templates
- Webjars support
- WebSockets
- Extend Application Capabilities
- Server Applications