forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Http-Сервер (Отправка файла) (http://forum.boolean.name/showthread.php?t=19924)

Gector 31.07.2015 15:57

Http-Сервер (Отправка файла)
 
Привет, булка! Делаю небольшое приложение с веб-мордой. Логика простая. У приложения есть небольшой самописный http-сервер, который получает из браузера запрос, и отправляет ответ в виде html-странички. Но есть вопрос: Как отправлять картинки, для оформления страницы в этом случае?

DStalk 31.07.2015 17:44

Ответ: Http-Сервер (Отправка файла)
 
Все картинки отправляются по отдельным запросам. Браузер принял HTML, посмотрел все сторонние ресурсы (js, css, картинки и т.п.) и по указанным ссылкам пустил отдельные запросы. Можно картинки хранить вообще на другом сайте...
Ну а сама передача картинки сервером - http-заголовки и за ним байт-код картинки в исходном виде (или как там это правильно называется, хз).:)

moka 31.07.2015 17:52

Ответ: Http-Сервер (Отправка файла)
 
Этим лучше пусть занимается web сервер, nginx или apache, сделай статик чек, например у nginx есть try_files - очень удобная штука.
Если файл не найден, тогда далее пытается уже файл скрипта исполнять.

Gector 31.07.2015 20:25

Ответ: Http-Сервер (Отправка файла)
 
Цитата:

Сообщение от moka (Сообщение 298124)
Этим лучше пусть занимается web сервер, nginx или apache, сделай статик чек, например у nginx есть try_files - очень удобная штука.
Если файл не найден, тогда далее пытается уже файл скрипта исполнять.

Не). Ты не так понял. Есть относительно мелкое приложение, для которого интерфейс сделан через браузер. Поднимать полноценный сервак для маленького приложения - не целесообразно.

Gector 31.07.2015 20:41

Ответ: Http-Сервер (Отправка файла)
 
Цитата:

Сообщение от DStalk (Сообщение 298123)
Все картинки отправляются по отдельным запросам. Браузер принял HTML, посмотрел все сторонние ресурсы (js, css, картинки и т.п.) и по указанным ссылкам пустил отдельные запросы. Можно картинки хранить вообще на другом сайте...
Ну а сама передача картинки сервером - http-заголовки и за ним байт-код картинки в исходном виде (или как там это правильно называется, хз).:)

Спасибо!) Я как раз пытался сделать так. Просто кое-где налажал и от этого запрос на картинку не приходил, вот и подумал что я не правильно понял).

moka 01.08.2015 23:01

Ответ: Http-Сервер (Отправка файла)
 
"поднимать сервер"?
yum install nginx - сервер поднят.
nodejs статик сервер пишется за 15 минут и без веб сервера тоже.

Gector 02.08.2015 11:37

Ответ: Http-Сервер (Отправка файла)
 
Цитата:

Сообщение от moka (Сообщение 298139)
"поднимать сервер"?
yum install nginx - сервер поднят.
nodejs статик сервер пишется за 15 минут и без веб сервера тоже.

Интересно же и самому поковыряться). Кроме того на шарпе подобные вещи тоже можно написать за 15 минут, просто надо знать как.

moka 02.08.2015 22:41

Ответ: Http-Сервер (Отправка файла)
 
Шарп и его виртуальная машина тяжелее того же nginx..

Gector 03.08.2015 11:03

Ответ: Http-Сервер (Отправка файла)
 
Цитата:

Сообщение от moka (Сообщение 298156)
Шарп и его виртуальная машина тяжелее того же nginx..

Да я понимаю). Но это для изучения языка.

Nikich 03.08.2015 14:34

Ответ: Http-Сервер (Отправка файла)
 
Если хочешь делать грамотно, не забывай про MIME и сжатие (gzip, deflate, sdch).

Gector 05.08.2015 10:45

Ответ: Http-Сервер (Отправка файла)
 
Эммм... Извиняюсь за тупняк, но я просто не совсем понял из примеров как переслать изображение. Как я понял разницы между пересылкой изображения и файла не много (разница только в значении MIME). Но как передать сам файл, я не совсем понимаю. В туторах говорят, что надо пересылать raw data. Но как записать его в ответ сервера? В смысле подготавливать к передаче.

moka 05.08.2015 12:21

Ответ: Http-Сервер (Отправка файла)
 
Вот тебе код, который сервит любые данные из директории public в корню директории с app.js файлом.
Поставь nodejs и npm, создай папку, затем cd в эту папку и поставь express молуль: npm install express
Затем создай app.js в этой папке с таким содержимым:

PHP код:

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(reqresnext) {
    
res.json({ hello'world' });
});

// listen on port
var port 10001;
app.listen(port, function() { 
    
console.log('listening on port ' port);
}); 

Запускается так:
PHP код:

node app.js 


Кирпи4 05.08.2015 14:59

Ответ: Http-Сервер (Отправка файла)
 
Цитата:

Сообщение от moka (Сообщение 298203)
Вот тебе код, который сервит любые данные из директории public в корню директории с app.js файлом.
Поставь nodejs и npm, создай папку, затем cd в эту папку и поставь express молуль: npm install express
Затем создай app.js в этой папке с таким содержимым

А ничего, что человек спрашивал про шарп, а ты лезешь со своим нодом?

moka 05.08.2015 15:58

Ответ: Http-Сервер (Отправка файла)
 
Он спросил изначально 31.07.2015. Сегодня уже 05.08.2015, это 5 дней спустя он не решил задачу.
Я загуглил, и написал мелкий скрипт за ~5 минут, и решил его задачу, также показал как хэндлить кодом запросы тоже.

Если бы его шарп решал бы отлично поставленную задачу, или была бы инфа - то думаю за 5 дней нашлось бы решение.

В отличии от тебя, я дал решение задачи. Ты лишь оффтопнул.

Кирпи4 05.08.2015 18:18

Ответ: Http-Сервер (Отправка файла)
 
Цитата:

Сообщение от moka (Сообщение 298213)
Он спросил изначально 31.07.2015. Сегодня уже 05.08.2015, это 5 дней спустя он не решил задачу.
Я загуглил, и написал мелкий скрипт за ~5 минут, и решил его задачу, также показал как хэндлить кодом запросы тоже.

Если бы его шарп решал бы отлично поставленную задачу, или была бы инфа - то думаю за 5 дней нашлось бы решение.

В отличии от тебя, я дал решение задачи. Ты лишь оффтопнул.

А что если я скажу что я помог всё сделать, только в конторе?


Часовой пояс GMT +4, время: 03:48.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot