Основные аспекты работы web-сервера

Теперь, когда мы ознакомились с некоторыми деталями протокола HTTP и создали на языке Java два приложения архитектуры клиент/сервер, постараемся связать полученные знания и разработать web-сервер средствами языка Java. Как вы убедитесь чуть позже, эта задача не представляет сложности.

Сервер, который мы собираемся построить, будет выполнять следующие функции.

1. Прием и обработка единственного HTTP-запроса.
2. Извлечение требуемого файла с помощью файловой системы сервера.
3. Создание ответного HTTP-сообщения, включающего строки заголовка и требуемый файл.
4. Передача ответного сообщения непосредственно клиенту.

Программный код, который будет представлен ниже, иллюстрирует лишь основные аспекты работы web-сервера и лишен многих деталей (например, в нем отсутствует обработка исключений); мы сделали его максимально кратким, чтобы вы могли сконцентрировать внимание на ключевых составляющих сервера. Кроме того, программа WebServer.java написана с допущением, что запрашиваемый файл имеется в файловой системе сервера. Ее текст приведен ниже.

import java.io.*;
import Java.net.*;
import java.uti1.*;
class Webserver
{
public static void main(String argv[]) throws Exception
{
String requestMessageLine;
String fileName;
ServerSocket listenSocket = new ServerSocket(6789);
Socket connectionSocket = listenSocket.acceptO:
BufferedReader inFromClient =
new BufferedReader( new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream outToClient =
new DataOutputStream(connectionSocket.getOutputStream());
requestMessageLine = inFromClient. readLineO;
StringTokenizer tokenizedLine =
new StringTokenizer(requestMessageLine);
if (tokenizedLine.nextToken().equals(«GET»))
{
fileName = tokenizedLine.nextToken();
if (fileName.startsWithCV») == true )
fileName = fileName.substring(l);
File file = new File(fileName);
int numOfBytes = (int) file.length();
FilelnputStream inFile = new FilelnputStream (fileName);
byte[] filelnBytes = new byte[numOfBytes]:
inFile.read(filelnBytes):

но осуществить. Для создания запроса используйте браузер, однако помните, что сервер использует нестандартный номер порта 6789, который должен быть указан в запросе. Например, если сервер находится на хосте с именем _somehost.somewhere.edu, а запрашиваемый файл имеет имя somefile.html, то в адресной строке браузера следует ввести следующий запрос:
_http://somehost.somewhere.edu:6789/somefi1e.html

Данная статья "Основные аспекты работы web-сервера" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Основные аспекты работы web-сервера" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Основные аспекты работы web-сервера", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *