Как проверить изменения данных после GET без повторного запроса?

Nekro

Client
Регистрация
01.08.2020
Сообщения
223
Благодарностей
23
Баллы
18
Здравствуйте.

Боты спамят сервер GET запросами получая актуальные данные. Через какое-то время получаю ошибки 503 (я так понимаю - упираюсь в лимиты сервера). Без изменений эти данные получать не нужно. Как-то можно заранее узнать изменились ли данные с момента отправки прошлого GET без отправки полноценного запроса? Чтобы уменьшить спам на сервер.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
Здравствуйте.

Боты спамят сервер GET запросами получая актуальные данные. Через какое-то время получаю ошибки 503 (я так понимаю - упираюсь в лимиты сервера). Без изменений эти данные получать не нужно. Как-то можно заранее узнать изменились ли данные с момента отправки прошлого GET без отправки полноценного запроса? Чтобы уменьшить спам на сервер.
я передаю данные, для того что бы узнать изменения в этих данных.... но хочу узнавать об изменении данных, без передачи данных.... *HAHA*
ну ты свой вопрос вообще как придумал ?
 

Nekro

Client
Регистрация
01.08.2020
Сообщения
223
Благодарностей
23
Баллы
18
я передаю данные, для того что бы узнать изменения в этих данных.... но хочу узнавать об изменении данных, без передачи данных.... *HAHA*
ну ты свой вопрос вообще как придумал ?
Да было что-то такое когда сервер настраивал. Только там сервер передавал данные.

Ну ладно, кроме паузы я так понимаю нет вариантов, да?)
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
Да было что-то такое когда сервер настраивал. Только там сервер передавал данные.

Ну ладно, кроме паузы я так понимаю нет вариантов, да?)
ну если это твой сервер, то наверно можно что то хитрое настроить. никто же не знает всех деталей. для чего сервер спамят запросами ? есть ли там возможность работать по вебсокету ?
и что вообще может сервер ?
ну надеюсь ты понял, что пока что ничего не понятно в твоей схеме работы.
 
  • Спасибо
Реакции: Nekro

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113
Ну ладно, кроме паузы я так понимаю нет вариантов, да?)
Есть один вариант.

Сервер возвращает заголовок Last-Modified, который содержит дату и время, в которую, по мнению удалённого сервера, запрашиваемый ресурс был изменён (источник) и/или Etag - если страница изменилась, то данный заголовок тоже обновится (MDN).

Можно использовать заголовок If-Modified-Since при отправке запроса, в котором указать время из Last-Modified, полученное на предыдущем запросе. Если время не изменилось, то должна вернуться 304-я ошибка.

Либо использовать If-None-Match в паре с Etag.

Возможно это поможет.
 
  • Спасибо
Реакции: volody00 и Nekro

Nekro

Client
Регистрация
01.08.2020
Сообщения
223
Благодарностей
23
Баллы
18
Есть один вариант.

Сервер возвращает заголовок Last-Modified, который содержит дату и время, в которую, по мнению удалённого сервера, запрашиваемый ресурс был изменён (источник) и/или Etag - если страница изменилась, то данный заголовок тоже обновится (MDN).

Можно использовать заголовок If-Modified-Since при отправке запроса, в котором указать время из Last-Modified, полученное на предыдущем запросе. Если время не изменилось, то должна вернуться 304-я ошибка.

Либо использовать If-None-Match в паре с Etag.

Возможно это поможет.
Вот это я и искал. Только в моём случае запрос проходит через cloudflare. А он ничего подобного не выдаёт:
C#:
HTTP/1.1 200 OK
Date: Tue, 17 Jan 2023 03:38:07 GMT
Content-Type: application/json; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
Set-Cookie: _language=ru; expires=Thu, 16-Feb-2023 03:38:07 GMT; Max-Age=2592000; path=/; HttpOnly; SameSite=Lax
X-Request-ID: b4f27c77543dd89e5d2c2c84e30e9e36
Strict-Transport-Security: max-age=31536000;
CF-Cache-Status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=lYYKX8MT5IEv1BZXUmcGt0hW8f8ouiS41lrI76m2IScHSLYk1j2N%2Bp4vPd0kKoLvCr%2B39b3e2S81Cnq7KLwOScpDCr6dZRtADi3t7irf3uwNZBXyXwvkwdC56wBT7g%3D%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 78ac0e655edd924f-FRA
Content-Encoding: gzip
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113
Только в моём случае запрос проходит через cloudflare. А он ничего подобного не выдаёт:
А дальше идёт редирект на необходимый ресурс? Возможно там есть необходимый заголовок?

Увы, больше подсказать не смогу, т.к. сам никогда этим функционалом не пользовался:bk:
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)