посоны, тут такая тема, хуярю я access log поверх библиотеки HttpCore. возник такой вопрос, что считать временем обработки запроса, а точнее, когда считать, что обработка началась? после получения заголовков или после получения тела (если я не поточно его обрабатываю)?
*http
подумалось тут. а ведь хороший, годный асинхронный http-сервер при вычитывании запроса до появления CRLF CRLF всё равно будет все CRLF'ы находить. так что мог бы сразу складывать в какой-нибудь отдельный массив разметку заголовков.
кто-нибудь писал HTTP-сервера с кастомной логикой как плагин к nginx? какие подводные камни кроме того, что я, вероятнее всего, заебусь?
Немного фактов:
1. rfc2616 определяет Request-Line как «Method SP Request-URI SP HTTP-Version CRLF»
2. Request-URI, в свою очередь, стало быть определяется как «"*" | absoluteURI | abs_path | authority»
3. Собственно всё. В соответствии с rfc2616 самый обычный Request-Line «GET /path?query HTTP/1.1\r\n» является ... more →
Часть первая: полезная.
Всем желающим писать хттп-сервер на жабке и кому не подходит HttpCore вовсе не
обязательно костылить свой велосипед. Оказывается начиная с JDK 1.6 уже есть
простой и понятный сервер:
http://docs.oracle.com/javase/7/docs/api...
Не умеет только давать возможность вешать ... more →
Если вы уже начали поточно отдавать файл по HTTP в chunked endcoding, но
вспомнили, что нужно сообщить ещё что-то очень важное, что не является частью
тела ответа, то после нулевого чанка просто допишите нужный заголовок, вместо
того чтобы ставить завершающий CRLF. Хорошо бы ещё в начале пакета, в ... more →
я, конечно, всех уже заебал, но тем не менее.
1. Сразу скажу почему не использую новомодные multiplexing и NIO. Использую, но
для другого. В случае же, когда нужно обрабатывать большое количество данных
отсылаемых POST'ом и отвечать просто 200 или 400 (или 50x) рекомендуют
использовать старый добрый accept() и ... more →
в поисках очередного шквала критики, пишу сюда, что пока пришёл к следующему варианту организации обработки запросов.
- Используется всё тот же ThreadPoolExecutor(workers, ..., new ArrayBlockingQueue<Runnable>(connections — workers))
- После завершения обработки очередного запроса, в случае, если коннекшн ещё жив, ... more →
я тут пытаюсь понять, как правильный HTTP-сервер должен себя вести. хочется услышать критику к подходам и методам.
рассуждаю в терминах жабы, но все кто осилил http://docs.oracle.com/javase/7/docs/api тоже приглашаются к дискуссии.
- Когда пишешь http-сервер первый раз, то на каждый accept() создаёшь новый
Thread ... more →
жуйк, а каково твоё мнение, количество соединений к серверу, и количество обрабатывающих их потоков, должны совпадать?
Псач, есть один HTTP-ответ, длины которого я заранее не знаю, поэтому Content-Length я не выставляю, а Chunk Encoding писать западло. Так вот, насколько корректно просто послать FIN в конце передаваемых данных?
*http is used by:
Hirthwork McGillah
hirthwork
gelraen
gelraen
Thordendal
z56371410
Nico-izo
Nico-izo
kb
kb
L29Ah
L29Ah
der_FeniX
der_FeniX
hirthwork
gelraen
z56371410
Nico-izo
kb
L29Ah
der_FeniX