powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
25 сообщений из 58, страница 2 из 3
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774246
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинсто раз обсуждали и еще 1 раз обсудить или вы в самом деле не знаете, что принято возвращать? (на всякий пожарный, поясню, надо возвращать то, что у вас описано в api). Если же брать общую практику, то :
- валидный json, но что-то не так со схемой - 422 анпроцессибл энтити
- просто ожидаем json, а пришел какой-то xml - 400 бэд реквест
- дальше уже вариации на тему

Не в курсе что вы там обсуждали и с кем. 422 - это вообще про webdav, а RFC говорит что нужно 400 (в 2616 было иначе, да):

https://tools.ietf.org/html/rfc7231#section-6.5.1 6.5.1. 400 Bad Request

The 400 (Bad Request) status code indicates that the server cannot or
will not process the request due to something that is perceived to be
a client error (e.g., malformed request syntax, invalid request
message framing, or deceptive request routing).



ОзверинАндрей Панфилов- мы запрос можем обработать, но от клиента требуется подтверждение (заголовок или еще что) - а это какой код?

- 403 как бе для таких случаев

403 - это исключительно про права доступа, не нужно ему приписывать что-то другое. Более того, ответ 200 с сервера гарантирует, что пейлоад, идущий с ним, правильного формата и соответствует API, а 4xx может не только приложение выкидывать, а вообще что угодно, так что смысла морочиться с 4xx нет никакого.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774247
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,

HTTP 403 provides a distinct error case from HTTP 401 ; while HTTP 401 is returned when the client has not authenticated, and implies that a successful response may be returned following valid authentication, HTTP 403 is returned when the client is not permitted access to the resource for some reason besides authentication. This other reason needs to be acted upon before re-requesting access to the resource.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774253
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, 400 и 422 для rest - эквивалентные ошибки, не вижу проблем в этом. Но проблема в том, в связи с тем, что надо отличать причину бэд реквеста, 400 используют, когда вообще прислали ересь, а 422 - когда разобрать получилось, но схема не та.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774255
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин HTTP 403 provides a distinct error case from HTTP 401 ; while HTTP 401 is returned when the client has not authenticated, and implies that a successful response may be returned following valid authentication, HTTP 403 is returned when the client is not permitted access to the resource for some reason besides authentication. This other reason needs to be acted upon before re-requesting access to the resource.вы авторизацию от аутентификации отличаете?
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774261
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверин HTTP 403 provides a distinct error case from HTTP 401 ; while HTTP 401 is returned when the client has not authenticated, and implies that a successful response may be returned following valid authentication, HTTP 403 is returned when the client is not permitted access to the resource for some reason besides authentication. This other reason needs to be acted upon before re-requesting access to the resource.вы авторизацию от аутентификации отличаете?


HTTP 403 is returned when the client is not permitted access to the resource for some reason besides authenticatio
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774262
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверин HTTP 403 provides a distinct error case from HTTP 401 ; while HTTP 401 is returned when the client has not authenticated, and implies that a successful response may be returned following valid authentication, HTTP 403 is returned when the client is not permitted access to the resource for some reason besides authentication. This other reason needs to be acted upon before re-requesting access to the resource.вы авторизацию от аутентификации отличаете?

мне нравятся ваши вопросы, потому: вы в английский не умеете, да?
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774266
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинHTTP 403 is returned when the client is not permitted access to the resource for some reason besides authenticationНу, это и есть авторизация, а кейс изначально такой: "мы это выполним, но выполнятся оно будет долго, может вызвать рак мозга и пр., продолжить или нет?"
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774268
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинHTTP 403 is returned when the client is not permitted access to the resource for some reason besides authenticationНу, это и есть авторизация, а кейс изначально такой: "мы это выполним, но выполнятся оно будет долго, может вызвать рак мозга и пр., продолжить или нет?"

с каких пор some reason стало только авторизацией?

авторHowever, a request might be forbidden for reasons
unrelated to the credentials.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774270
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы вы точно не продожали, ибо в английский -так себе:


автор An origin server that wishes to "hide" the current existence of a
forbidden target resource MAY instead respond with a status code of
404 (Not Found).

То есть другими словами, вы только что узнали, что сообщество использует 403 в том числе и для того, чтобы указать,что, к примеру, что не хватает какого-то хедера. Может и не использовать, но гитхаб, к примеру - так делает. но они то кто?
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774297
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov... но статусные коды HTTP-протокола позволяют работать (произвольному) балансировщику нагрузки, а выпендрёж с "ошибка в теле успешного отклика" - нет.
при том что они более приложение-независимые и имеют хоть какой-то стандарт. а парсить джейсоны на предмет ошибок сервера - ну это такое. скажем так, сложное занятие. зачем тем более сочинять костыли когда всё уже придумано до нас.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774299
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

ты прям соап ща описал. только такой немного стейтлесс. добро пожаловать на зад.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774302
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTОзверин,

ты прям соап ща описал. только такой немного стейтлесс. добро пожаловать на зад.

не, это json rpc - добро пожаловать в хорошо забытое старое.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774309
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTпредмет ошибок серверасабж не только об ошибках сервера. Но и про БЛ.
HTTP.error констант тебе не хватит.
Вот и переходи плавно от ошибок транспорта к ошибкам чуть сложнее.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774319
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andreykaTпредмет ошибок серверасабж не только об ошибках сервера. Но и про БЛ.
HTTP.error констант тебе не хватит.
Вот и переходи плавно от ошибок транспорта к ошибкам чуть сложнее.

подход подразумевает, что к статусу ответа всегда можно добавить какое-нить сообщение, в котором можно уже что-нибуть и раскрыть. А безопасность говорит, что статуса должно хватить, чтобы не клиенты не занимались всякой злочинной ерундой.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774324
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинТо есть другими словами, вы только что узнали, что сообщество использует 403 в том числе и для того, чтобы указать,что, к примеру, что не хватает какого-то хедера. Может и не использовать, но гитхаб, к примеру - так делает. но они то кто?Я не в курсе что вы там только что узнали (вероятно что в некоторых случаях вместо 403 можно 404 посылать, что само по себе несет некий смысл: 403 подразумевает что ресурс-таки существует, и соответственно раскрывает информацию, впрочем именно это в RFC и написано), однако трактовать фразу "мы запретили доступ по какой-то только нам известной причине" трактовать как "в любой непонятной ситуации слать 403", скажем там, несколько фривольно: существует некоторая общепринятая практика, и здесь 403 - это именно ошибки авторизации, примеры:
- google: https://developers.google.com/analytics/devguides/reporting/core/v3/errors
- amazone: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#RESTErrorResponses
- microsoft: https://support.microsoft.com/en-au/help/943891/the-http-status-code-in-iis-7-0-iis-7-5-and-iis-8-0

реализовывать бизнес-логику на 4xx - это все равно что реализовывать бизнес-логику на исключениях.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774339
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
Я ему к тому что есть 4 разных подхода.
Он почему то гонит только к одному - нельзя дать 200 если внутри json ошибки.
Я лично все 4 уважаю)
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774344
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов, вы не можете перевести обычную фразу? Тот факт, что кто-то использует(а точнее, одна из комманд, и то - не факт, ибо этому описанию сто лет в обед) - подвтерждает, что там написано что-то другое?:)

https://cloud.google.com/storage/docs/json_api/v1/status-codes

Тут от авторизации до ratelimit`а ошибки. Что из этого должно следовать? Что 403 используют только для доступ запрещен? Ну да-ну да.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774346
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловреализовывать бизнес-логику на 4xx - это все равно что реализовывать бизнес-логику на исключениях.

к чему это вообще? Есть определенный подход, рест, у него есть определенные варианты использования, есть наработанные практики...причем тут замечание какого-то человека о том, что там можно , а что нет? Уже используются эти исключения в очень большом кол-ве мест, и это не зависит от вашего мнения по этому поводу.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774351
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинвы не можете перевести обычную фразу?Я могу даже больше перевести, но вся суть отражается одним словом: forbidden - запрещено, в приведенном мной сценарии никаких запретов нет - нужно подтвердить действие.

ОзверинТут от авторизации до ratelimit`а ошибки. Что из этого должно следовать? Что 403 используют только для доступ запрещен? Ну да-ну да.
а по вашему ratelimit не относится к тарифному плану и, как следствие, к авторизации?

Озверинк чему это вообще? Есть определенный подход, рест, у него есть определенные варианты использования, есть наработанные практики...причем тут замечание какого-то человека о том, что там можно , а что нет? Уже используются эти исключения в очень большом кол-ве мест, и это не зависит от вашего мнения по этому поводу.
Со стороны инфраструктуры (не приложения), клиент, постоянно генерирующий ошибки, выглядит довольно подозрительно, а с вашим подходом получается примерно так: ну тут пофиг что от кого-то идет постоянный трафик с 403 - это не хакер, это у нас бизнес-логика так реализована.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774358
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилова по вашему ratelimit не относится к тарифному плану и, как следствие, к авторизации?


вряд ли хоть один нормальный человек скажет, что рейтлимит относится к авторизации ;)
Но вы можете продолжать нести демагогоию на этот счет.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774359
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинАндрей Панфилова по вашему ratelimit не относится к тарифному плану и, как следствие, к авторизации?


вряд ли хоть один нормальный человек скажет, что рейтлимит относится к авторизации ;)
Но вы можете продолжать нести демагогоию на этот счет.

p.s. к слову, рейтлимит - это бизнеслогика, потому что на нем завязана оплата.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774361
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С дубов вы, что ли, все попадали?
Причин, по которым вводятся лимиты на скорость скачивания и частоту запросов - вагон и маленькая тележка.
Авторизация и тарифные планы в этих причинах - не на первом месте. Мягко говоря.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774362
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovС дубов вы, что ли, все попадали?
Причин, по которым вводятся лимиты на скорость скачивания и частоту запросов - вагон и маленькая тележка.
Авторизация и тарифные планы в этих причинах - не на первом месте. Мягко говоря.

не, это пятница, а человеку хочется дискуссий...видимо.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774372
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверинp.s. к слову, рейтлимит - это бизнеслогика, потому что на нем завязана оплата.В каком это месте рейтлимит бизнеслогика-то?
- аутентификация: мы тебя знать не знаем, давай свои креденшелы мы тебя проверим
- авторизация: мы тебя знаем, но вот сюда тебе нельзя, потому что мы так решили

т.е. "вы превысили порог количества обращений (в секунду, и пр.) - несите бабки" - это авторизация, прилетает сообщение оно от инфраструктуры , а бизнес-логика сюда натягивается из отдела продаж гугла, а не из моего приложения.
...
Рейтинг: 0 / 0
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
    #39774381
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловОзверинp.s. к слову, рейтлимит - это бизнеслогика, потому что на нем завязана оплата.В каком это месте рейтлимит бизнеслогика-то?
- аутентификация: мы тебя знать не знаем, давай свои креденшелы мы тебя проверим
- авторизация: мы тебя знаем, но вот сюда тебе нельзя, потому что мы так решили

т.е. "вы превысили порог количества обращений (в секунду, и пр.) - несите бабки" - это авторизация, прилетает сообщение оно от инфраструктуры , а бизнес-логика сюда натягивается из отдела продаж гугла, а не из моего приложения.

а повторите запрос через 10 секунд - это что:? Тоже авторизация?
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]