![](images/chestnut/misc/left.gif) |
С# Средство разработки на платформе .Net |
31.07.2015, 15:57
|
#1
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Http-Сервер (Отправка файла)
Привет, булка! Делаю небольшое приложение с веб-мордой. Логика простая. У приложения есть небольшой самописный http-сервер, который получает из браузера запрос, и отправляет ответ в виде html-странички. Но есть вопрос: Как отправлять картинки, для оформления страницы в этом случае?
|
(Offline)
|
|
31.07.2015, 17:44
|
#2
|
Разработчик
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений (для 1,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Все картинки отправляются по отдельным запросам. Браузер принял HTML, посмотрел все сторонние ресурсы (js, css, картинки и т.п.) и по указанным ссылкам пустил отдельные запросы. Можно картинки хранить вообще на другом сайте...
Ну а сама передача картинки сервером - http-заголовки и за ним байт-код картинки в исходном виде (или как там это правильно называется, хз). ![:)](images/smilies/smile.gif)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.07.2015, 17:52
|
#3
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Этим лучше пусть занимается web сервер, nginx или apache, сделай статик чек, например у nginx есть try_files - очень удобная штука.
Если файл не найден, тогда далее пытается уже файл скрипта исполнять.
|
(Offline)
|
|
31.07.2015, 20:25
|
#4
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Этим лучше пусть занимается web сервер, nginx или apache, сделай статик чек, например у nginx есть try_files - очень удобная штука.
Если файл не найден, тогда далее пытается уже файл скрипта исполнять.
|
Не). Ты не так понял. Есть относительно мелкое приложение, для которого интерфейс сделан через браузер. Поднимать полноценный сервак для маленького приложения - не целесообразно.
|
(Offline)
|
|
31.07.2015, 20:41
|
#5
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от DStalk
Все картинки отправляются по отдельным запросам. Браузер принял HTML, посмотрел все сторонние ресурсы (js, css, картинки и т.п.) и по указанным ссылкам пустил отдельные запросы. Можно картинки хранить вообще на другом сайте...
Ну а сама передача картинки сервером - http-заголовки и за ним байт-код картинки в исходном виде (или как там это правильно называется, хз). ![:)](images/smilies/smile.gif)
|
Спасибо!) Я как раз пытался сделать так. Просто кое-где налажал и от этого запрос на картинку не приходил, вот и подумал что я не правильно понял).
|
(Offline)
|
|
01.08.2015, 23:01
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
"поднимать сервер"?
yum install nginx - сервер поднят.
nodejs статик сервер пишется за 15 минут и без веб сервера тоже.
|
(Offline)
|
|
02.08.2015, 11:37
|
#7
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
"поднимать сервер"?
yum install nginx - сервер поднят.
nodejs статик сервер пишется за 15 минут и без веб сервера тоже.
|
Интересно же и самому поковыряться). Кроме того на шарпе подобные вещи тоже можно написать за 15 минут, просто надо знать как.
|
(Offline)
|
|
02.08.2015, 22:41
|
#8
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Шарп и его виртуальная машина тяжелее того же nginx..
|
(Offline)
|
|
03.08.2015, 11:03
|
#9
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Шарп и его виртуальная машина тяжелее того же nginx..
|
Да я понимаю). Но это для изучения языка.
|
(Offline)
|
|
03.08.2015, 14:34
|
#10
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Если хочешь делать грамотно, не забывай про MIME и сжатие (gzip, deflate, sdch).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.08.2015, 10:45
|
#11
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Эммм... Извиняюсь за тупняк, но я просто не совсем понял из примеров как переслать изображение. Как я понял разницы между пересылкой изображения и файла не много (разница только в значении MIME). Но как передать сам файл, я не совсем понимаю. В туторах говорят, что надо пересылать raw data. Но как записать его в ответ сервера? В смысле подготавливать к передаче.
|
(Offline)
|
|
05.08.2015, 12:21
|
#12
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Вот тебе код, который сервит любые данные из директории public в корню директории с app.js файлом.
Поставь nodejs и npm, создай папку, затем cd в эту папку и поставь express молуль: npm install express
Затем создай app.js в этой папке с таким содержимым:
var http = require('http'); var express = require('express');
// catch exceptions and ignore them // it is actually is a bad practice process.on('uncaughtException', function(err) { console.log(err); });
var app = express();
// bind static folder app.use(express.static(__dirname + '\public'));
// bind normal get /test request and response with test json app.get('/test', function(req, res, next) { res.json({ hello: 'world' }); });
// listen on port var port = 10001; app.listen(port, function() { console.log('listening on port ' + port); });
Запускается так:
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.08.2015, 14:59
|
#13
|
Социал-сычевист
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений (для 1,359 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Вот тебе код, который сервит любые данные из директории public в корню директории с app.js файлом.
Поставь nodejs и npm, создай папку, затем cd в эту папку и поставь express молуль: npm install express
Затем создай app.js в этой папке с таким содержимым
|
А ничего, что человек спрашивал про шарп, а ты лезешь со своим нодом?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Кирпи4 за это полезное сообщение:
|
|
05.08.2015, 15:58
|
#14
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Он спросил изначально 31.07.2015. Сегодня уже 05.08.2015, это 5 дней спустя он не решил задачу.
Я загуглил, и написал мелкий скрипт за ~5 минут, и решил его задачу, также показал как хэндлить кодом запросы тоже.
Если бы его шарп решал бы отлично поставленную задачу, или была бы инфа - то думаю за 5 дней нашлось бы решение.
В отличии от тебя, я дал решение задачи. Ты лишь оффтопнул.
|
(Offline)
|
|
05.08.2015, 18:18
|
#15
|
Социал-сычевист
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений (для 1,359 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Он спросил изначально 31.07.2015. Сегодня уже 05.08.2015, это 5 дней спустя он не решил задачу.
Я загуглил, и написал мелкий скрипт за ~5 минут, и решил его задачу, также показал как хэндлить кодом запросы тоже.
Если бы его шарп решал бы отлично поставленную задачу, или была бы инфа - то думаю за 5 дней нашлось бы решение.
В отличии от тебя, я дал решение задачи. Ты лишь оффтопнул.
|
А что если я скажу что я помог всё сделать, только в конторе?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:31.
|