A Web server that works with HTTP

Multiple domain names are implemented on a single VM

The HTTP/1.1 specification allows a single HTTP server to host multiple Web sites. Even if the physical level only one server, but as long as the use of virtual host function, you can assume that there are multiple servers.

On the Internet, domain names are mapped to IP addresses (domain name resolution) by the DNS service after accessing the target website. As you can see, when the request is sent to the server, it is already accessed as an IP address.

So, if a server hosts www.tricorder.jp and www.hackr.jp, you need to figure out which domain you want to access when you receive a request.

At the same IP address, the virtual Host can Host multiple Web sites with different Host names and domain names, so when sending HTTP requests, you must specify the URI of the Host name or domain name in the Host header

Communication data forwarding procedures: proxy, gateway, tunnel

These applications and servers can forward requests to the next server on the communication line, and can receive the response from that server and forward it to the client

  • The agent

A proxy is a forwarding application that acts as a “middleman” between the server and the client, receiving requests sent by the client and forwarding them to the server, and receiving responses returned by the server and forwarding them to the client

  • The gateway

A gateway is a server that forwards communication data from other servers, and when it receives a request from a client, it processes the request as if it were a source server with its own resources. Sometimes the client may not even realize that its communication target is a gateway

  • The tunnel

A tunnel is an application that communicates between a remote client and a remote server

The reasons for using proxy servers include: the use of caching techniques (described later) to reduce traffic from network bandwidth, access control within the organization for specific sites, access logs primarily, and so on. Agents can be used in a variety of ways, categorized by two benchmarks. One is whether to use caching, and the other is whether to modify packets.

  • The caching proxy

When a Proxy forwards a response, the Caching Proxy pre-stores a copy of the resource (cache) on the Proxy server. When the agent receives a second request for the same resource, it can not fetch the resource from the source server, but return the previously cached resource as a response.

  • Transparent proxy

Transparent Proxy is a type of Proxy that forwards requests or responses without processing the packets. On the contrary, an agent that processes the packet content is called an opaque agent.

The gateway

Gateways work much like proxies. The gateway enables the server on the communication line to provide non-HTTP services. Using gateways improves communication security because the communication line between the client and gateway can be encrypted to secure the connection.

The tunnel

A tunnel can establish a communication line with other servers as required and use encryption methods such as SSL to communicate.

The purpose of the tunnel is to ensure secure communication between the client and the server. The tunnel itself does not parse HTTP requests. That is, the request is forwarded to the subsequent server as is. The tunnel ends when the communication ends