lab4 webserver

This commit is contained in:
2025-11-02 13:37:19 +01:00
parent 81af17d42c
commit 895958d058
12 changed files with 470 additions and 0 deletions

17
lab4/test-site/data.txt Normal file
View File

@@ -0,0 +1,17 @@
Это тестовый текстовый файл.
Сервер должен корректно отдавать как текстовые, так и бинарные файлы.
Особенности реализации:
- Многопроцессная архитектура через fork()
- Демонизация процесса
- Поддержка HTTP/1.0 GET запросов
- Журналирование через syslog
- Обработка ошибок (404, 501)
Строки текста для проверки корректности передачи:
1234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
абвгдежзийклмнопрстуфхцчшщъыьэюя
Special chars: !@#$%^&*()_+-=[]{}|;':",.<>?/

38
lab4/test-site/index.html Normal file
View File

@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Тестовый веб-сервер</title>
<link rel="stylesheet" href="/style.css">
</head>
<body>
<div class="content">
<h1>🚀 Веб-сервер работает!</h1>
<p>Это тестовая страница простого HTTP сервера на C с использованием fork().</p>
<h2>Особенности:</h2>
<ul>
<li>Многопроцессная обработка клиентов</li>
<li>Работа в режиме демона</li>
<li>Поддержка HTTP GET</li>
<li>Статические файлы (HTML, текст, изображения)</li>
<li>Журналирование через syslog</li>
</ul>
<h2>Тестовые ссылки:</h2>
<ul>
<li><a href="/test.html">Тестовая страница</a></li>
<li><a href="/logo.png">Изображение (PNG)</a></li>
<li><a href="/data.txt">Текстовый файл</a></li>
<li><a href="/style.css">CSS файл</a></li>
</ul>
<h2>Изображение:</h2>
<img src="/logo.png" alt="Test Image">
</div>
</body>
</html>

BIN
lab4/test-site/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

35
lab4/test-site/style.css Normal file
View File

@@ -0,0 +1,35 @@
body {
font-family: Arial, sans-serif;
max-width: 800px;
margin: 50px auto;
padding: 20px;
background-color: #f5f5f5;
}
h1 {
color: #333;
}
.content {
background: white;
padding: 30px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
a {
color: #1a73e8;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
ul {
line-height: 1.8;
}
img {
margin: 20px 0;
}

39
lab4/test-site/test.html Normal file
View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Тестовая страница</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 50px auto;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.box {
background: rgba(255, 255, 255, 0.1);
padding: 30px;
border-radius: 10px;
backdrop-filter: blur(10px);
}
a {
color: #ffd700;
}
</style>
</head>
<body>
<div class="box">
<h1>✨ Тестовая страница</h1>
<p>Если вы видите эту страницу, значит сервер корректно обрабатывает HTTP запросы!</p>
<p>Сервер работает на порту <strong>13131</strong>.</p>
<p><a href="/">← Вернуться на главную</a></p>
</div>
</body>
</html>