Я изучаю разработку маленького (read:rudimentary) веб-сервера на платформе Linux, и я понятия не имею, где запустить.
То, что я хочу, чтобы это смогло сделать:
Я знаком с HTTP-заголовками и являюсь опытным PHP и веб-разработчиком .NET, но я не уверен, где запустить с этой задачи.
Можно ли советовать мне с некоторыми ресурсами соединять кривую обучения мостом?
Сверху вниз вам нужно знать о:
Итак, вам нужно будет узнать о написании базового приложения Unix, программировании сокетов BSD для сетевого программирования TCP / IP и протоколе HTTP.
Обычно используемые тексты включают:
Разработка приложений Unix:
Программирование TCP / IP (сокетов):
Протокол HTTP
Замените все нецифровые на пустые: оставшаяся последовательность содержит только цифры.
Integer.parseInt(s.replaceAll("[\\D]", ""))
Это также приведет к удалению нецифровки между цифрами, так что «x1x1x»
станет 11
.
Если необходимо подтвердить, что строка состоит из последовательности цифр (по крайней мере, одна), которые, возможно, следуют за буквой, используйте следующее:
s.matches("[\\d]+[A-Za-z]?")
-121--1397848- Все подробности не могут быть объяснены здесь
Посетите http://www.linuxhowtos.org/C_C++/socket.htm для создания базового сервера с использованием C.
Другой IBM: http://www.ibm.com/developerworks/systems/library/es-nweb/index.html
Всегда можно начать с существующей базы кода. boa может быть началом, так как он небольшой, реализован в C и подходит для вашего требования «запуск при загрузке»; подробности приведены, например, в пакете Debian/Ubuntu.
Для ПРОСТОГО / БАЗОВОГО / УЛЬТРА-ЛЕГКОГО HTTP-сервера поток программы должен быть примерно таким (в псевдокоде):
----Main thread----
Load settings
while true do
Wait for connection
Connection received, create a new thread and transfer this connection to this thread.
end
----Connection thread----
Analyze request
if dynamic content do
Dump the HTTP request and send it to the interpreter
Wait for response from the interpreter
Read response header from the interpreter
Stream response
else if static content do
Load requested file
Stream file content
end
(Optional) Cache the response if size < X
Send the response
Close the socket
Итак, вы следует изучить потоки, межпроцессное взаимодействие (если вы хотите взаимодействовать с интерпретатором), программирование сокетов и протокол HTTP.
Здесь невозможно объяснить все подробности
Посетите http://www.linuxhowtos.org/C_C++/socket.htm , чтобы создать базовый сервер с использованием C.
Еще один от IBM: http://www.ibm.com/developerworks/systems/library/es-nweb/index.html
http://en.wikipedia.org/wiki/Comparison_of_lightweight_web_servers
СПАСИБО, Википедия
Кстати - вы можете захотеть Google "встроенный веб-сервер с открытым исходным кодом"
(www) .ibm.com / developerworks / web / library / wa-ltwebserv /
С помощью библиотеки libevent вы можете написать веб-сервер в 40 строках кода c.
http://www.ruilog.com/article/view/5249.html
Если вы хотите создать его с нуля, вы можете ссылаться на веб-сервер с открытым исходным кодом, написанный на языке c, например lighttpd, apache, nginx.