
Denis
12.07.2017
10:59:26
а, мешало отсутствие мультиредности в js

Dmitry
12.07.2017
11:02:44
я думаю что js вообще помрет из-за того, что в нем тредовов нет т.к. я думаю что через пару лет 8-16 ядер станут нормой, а JS сайты будут тормозить так же как сейчас если не больше

Maxim
12.07.2017
11:08:41
js умрет, потому что он весьма сомнителен как язык)

Dmitry
12.07.2017
11:09:37
А что, в GUI фреймворках как-то используют многопоточность? Обычно "вот где получали карту, туда и идите", в смысле, "в каком потоке создали окно, в нем все операции и ведите". А для не-гуевых задач и в JS вроде есть какие-то треды-воркеры.

Google

Maxim
12.07.2017
11:10:16
как только пришлось его массово использовать в вебдеве, сразу появились всякие кофескрипты, тайпскрипты и дарты с транспиляцией, это, как бы, намекает)

Dmitry
12.07.2017
11:11:46
Топик про GUI и треды http://forum.dlang.org/thread/oju10i$1eub$1@digitalmars.com
Кто http хорошо знает, подскажите, почему эти два урла не совпадают?

Denis
12.07.2017
11:12:55

Dmitry
12.07.2017
11:14:09
Теоретически, да

Dmitry
12.07.2017
11:17:45
Кстати под Redox уже Python запустили
https://www.redox-os.org/news/gsoc-self-hosting-2/

Maxim
12.07.2017
11:19:09

Denis
12.07.2017
11:19:22

Dmitry
12.07.2017
11:19:46
@maxfreck один сайт на другой запрос делает получается?

Denis
12.07.2017
11:20:22

Maxim
12.07.2017
11:20:56
подозреваю, там какая-нибудь асинхронная магия
ну, хотя нет, не асинхронная магия, не понятно что, сначала нужно понять, почему они должны совпадать)

Google

Dmitry
12.07.2017
12:30:28
@maxfreck ну я не пойму оно по урлу http://services.sentinel-hub.com/index/v2/search?expand=true&timefrom=2017-06-12T14:05:40&timeto=2017-07-12T23:59:40&maxcc=1&maxcount=50&offset=0 запрос пытается отправить или что
Кстати, если GCC работает под Redox то когда туда включат Ди то получится что он тоже будет работать?

Maxim
12.07.2017
12:32:17
вернее, не кто-то, а твой браузер)
почему он это делает, я не знаю

Pavel
12.07.2017
12:32:57
Похоже на какую-то аналитику вообще
Всякие скрипты делают всякие запросы.

Dmitry
12.07.2017
12:33:26
ну он там космосники в с того сайта берет
причем берет без регистрации

Maxim
12.07.2017
12:34:10
а XMLHttpRequest кросс-доменные запросы сейчас разрешает или нет?

Dmitry
12.07.2017
12:34:20
у меня она так и не заработала — ругается на неправильный логин\пароль когда я туда руками все отправляю
вроде бы не разрешает....

Andrey
12.07.2017
12:35:35

Dmitry
12.07.2017
12:36:02
Нашел "Сервер должен, со своей стороны, ответить специальными заголовками, разрешает ли он такой запрос к себе."
т.е. получается на усмотрение сервера

Maxim
12.07.2017
12:36:35
а, ну все
Первый запрос называется «предзапрос» (английский термин «preflight»). Браузер делает его целиком по своей инициативе, из JavaScript мы о нём ничего не знаем, хотя можем увидеть в инструментах разработчика.
Этот запрос использует метод OPTIONS. Он не содержит тела и содержит название желаемого метода в заголовке Access-Control-Request-Method, а если добавлены особые заголовки, то и их тоже – в Access-Control-Request-Headers.
https://learn.javascript.ru/xhr-crossdomain
короче, яваскрипт в какой-то момент делает кроссдоменный запрос, то, что мы видим, это как раз и есть предзапрос, который определяет, можно ли сделат сам запрос
voila

Dmitry
12.07.2017
12:37:53
а если я руками сам запрос сформирую, то получается не прокатит?

Google

Dmitry
12.07.2017
12:38:11
из того же dlang-request

Pavel
12.07.2017
12:38:12
Если сформируешь вместе с хедерами то прокатит

Maxim
12.07.2017
12:38:24
почему, прокатит, на прямые запросы налагается даже меньше ограничений

Dmitry
12.07.2017
14:07:21
а как он может возвращать данные, если которые были найдены, если в ответе "Content-Length:0"
т.е. идет запрос, как я понимаю ответ долен содержать контент т.е. список изображений для указанных данных

Pavel
12.07.2017
14:08:14
Да.
Но может там несколько запросов?

Dmitry
12.07.2017
14:08:37
м... походу да
а зачем первый тогда может быть?

Pavel
12.07.2017
14:09:34
Ну он хожит за всякой служебной инфой.

Dmitry
12.07.2017
14:10:11
т.е. просто параметры соединения узнает?
я смотрю у первого в методах тип OPTION а у второго уже POST

Pavel
12.07.2017
14:10:34
Суть веба в том что браузер и JS делает обменивается запросами с сервером, делая что ему надо.

Dmitry
12.07.2017
14:10:40
вопрос, что будет если сразу второй сделать?

Pavel
12.07.2017
14:11:22
В этом и простота состоит. Сделал запрос - поменял состояние сервера. stateless протокол.
Из запроса OPTIONS сервер может понять с какого адреса браузер запрашивает страницу и что-нибудь там себе записать в базу или в сессию.

Dmitry
12.07.2017
14:14:04
под поменял состояние ты имеешь ввиду поднял подключение или что?
ну а если сразу второй сделать минуя первый? Я просто думал там в header будет передаваться все нужное в каждом запросе

Pavel
12.07.2017
14:15:25
Поменял состояние в теоретико-автоматном смысле :) Какую-то сессию у себя внутри создал или прописал разрешающее правило или еще что-то.
Лучше сначала просто воспроизведи все как есть точь-в-точь как это делает твой браузер. Со всеми заголовками, запросами и их порядком. Если это сработает, можешь потихоньку упрощать схему пока будет работать.

Google

Dmitry
12.07.2017
15:04:50
в итоге сказали мне другой сайт парсить. Еще раз вопрос про куки. На следующем скрине это кука которую мне сайт ставит?

Pavel
12.07.2017
15:06:20
Нет, первый блок это то что ты сам посылаешь, и какие куки ты сам посылаешь. А второй блок ниже - это то что отвечает тебе сервер и Set-Cookie: это какие куки он тебе ставит.

Dmitry
12.07.2017
15:07:13
referer это то что я посылаю?
или блоки которые проблелами разделены?
и второй это 302 Found

Pavel
12.07.2017
15:08:02
Да пробелом

Dmitry
12.07.2017
15:08:13
куки нужные как мне генерить?
чтобы туда отправить

Pavel
12.07.2017
15:08:48
Дописываешь в хедер Cookie нужные тебе данные и отправляешь запрос.

Admin
ERROR: S client not available

Dmitry
12.07.2017
15:17:25
Тоесть кука это по сути случайно сгенерированная строка? Или какая идея у ее генерации из кода?
Я конечно могу ту что на скрине взять, но будет ли она всегда работать?

Maxim
12.07.2017
15:22:05
кука — это то, что сервер передает клиенту, а клиент потом передает обратно серверу)
что-то типа гуляющих туда-сюда переменных

Pavel
12.07.2017
15:22:47
Нет ни в коем случае не случайная. Кука это единственное по чему сервер сможет отличить тебя от всех других клиентов.

Denis
12.07.2017
15:22:48
кука изначально это выданная сервером строка, которая передаётся с каждым запросом к нему
потом к ним добавили доступ из яваскрипта

Dmitry
12.07.2017
15:27:02
Я обращаюсь к /login и сервер ставит мне куку?

Pavel
12.07.2017
15:27:30
сервер может тебе в любом ответе поставить куку

Google

Pavel
12.07.2017
15:27:59
но обычно да, при логине он для тебя открывает сессию и ее id вписывает в куку и отдает тебе.

Maxim
12.07.2017
15:28:06
мне кажется, чем тут урывками что-то спрашивать, проще потратить вечер на изучение протокола http, благо, он простой)

Dmitry
12.07.2017
15:28:23
Щас буду читать про него

Denis
12.07.2017
15:28:51
т.к. вебмакаки не знают его тоже, то они сами руками обычно пилят аутентификацию

Dmitry
12.07.2017
15:29:28
А готовые. Методы для аутентификации в том же curl есть?

Pavel
12.07.2017
15:32:17
Там есть Http Basic Auth простейший

Dmitry
12.07.2017
15:33:29
А от более продвинутых он чем отличается? И тип аутентификации надо на сайте самом смотреть? В заголовках

Denis
12.07.2017
15:35:08
Более продвинутые применялись в эпоху до https чтобы пароль нельзя было проснифить

Dmitry
12.07.2017
15:35:49
А сейчас типа basic почти везде?

Denis
12.07.2017
15:36:05
да
точнее, сейчас почти везде просто форма

Pavel
12.07.2017
15:38:20
http://samag.ru/archive/article/1631

Andrey
12.07.2017
15:38:58
он запуталсо. во вчерашнем примере была смесь, basic аутентификация (т.е. заголовок Autorization: ...), и обычный post формы с логином-паролем. обычно basic не используется. без нее авторизация - просто посылка параметров обычным запросом
std.net.curl сохраняет данные сессии. в вайбе чо то не вижу... как там вообще работать с куками нормально
какая то бедная дока

Pavel
12.07.2017
15:42:21

Denis
12.07.2017
15:43:17
но при этом нарушает стандарт
и так у них всё

Dmitry
12.07.2017
15:43:37
Короче вчерашний сайт буду парсить потом, пока с этим буду разбираться. Тут же вроде basic auth?
Наверно все же через dlang-request. У него хоть разраб активный
И доки есть

Pavel
12.07.2017
15:44:22

Denis
12.07.2017
15:44:39
Ну вот ты зашёл, пароль не ввёл что тебе сайт скажет? в смысле, какой код?