|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Озверинсто раз обсуждали и еще 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 нет никакого. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:07 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:09 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, 400 и 422 для rest - эквивалентные ошибки, не вижу проблем в этом. Но проблема в том, в связи с тем, что надо отличать причину бэд реквеста, 400 используют, когда вообще прислали ересь, а 422 - когда разобрать получилось, но схема не та. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:16 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Озверин 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.вы авторизацию от аутентификации отличаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:19 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверин 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:25 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверин 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.вы авторизацию от аутентификации отличаете? мне нравятся ваши вопросы, потому: вы в английский не умеете, да? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:29 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
ОзверинHTTP 403 is returned when the client is not permitted access to the resource for some reason besides authenticationНу, это и есть авторизация, а кейс изначально такой: "мы это выполним, но выполнятся оно будет долго, может вызвать рак мозга и пр., продолжить или нет?" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:31 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверин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. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:34 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Чтобы вы точно не продожали, ибо в английский -так себе: автор 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 в том числе и для того, чтобы указать,что, к примеру, что не хватает какого-то хедера. Может и не использовать, но гитхаб, к примеру - так делает. но они то кто? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 10:36 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Basil A. Sidorov... но статусные коды HTTP-протокола позволяют работать (произвольному) балансировщику нагрузки, а выпендрёж с "ошибка в теле успешного отклика" - нет. при том что они более приложение-независимые и имеют хоть какой-то стандарт. а парсить джейсоны на предмет ошибок сервера - ну это такое. скажем так, сложное занятие. зачем тем более сочинять костыли когда всё уже придумано до нас. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:06 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Озверин, ты прям соап ща описал. только такой немного стейтлесс. добро пожаловать на зад. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:07 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
andreykaTОзверин, ты прям соап ща описал. только такой немного стейтлесс. добро пожаловать на зад. не, это json rpc - добро пожаловать в хорошо забытое старое. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:09 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
andreykaTпредмет ошибок серверасабж не только об ошибках сервера. Но и про БЛ. HTTP.error констант тебе не хватит. Вот и переходи плавно от ошибок транспорта к ошибкам чуть сложнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:14 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Petro123andreykaTпредмет ошибок серверасабж не только об ошибках сервера. Но и про БЛ. HTTP.error констант тебе не хватит. Вот и переходи плавно от ошибок транспорта к ошибкам чуть сложнее. подход подразумевает, что к статусу ответа всегда можно добавить какое-нить сообщение, в котором можно уже что-нибуть и раскрыть. А безопасность говорит, что статуса должно хватить, чтобы не клиенты не занимались всякой злочинной ерундой. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:19 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
ОзверинТо есть другими словами, вы только что узнали, что сообщество использует 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 - это все равно что реализовывать бизнес-логику на исключениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:23 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Озверин, Я ему к тому что есть 4 разных подхода. Он почему то гонит только к одному - нельзя дать 200 если внутри json ошибки. Я лично все 4 уважаю) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:37 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, вы не можете перевести обычную фразу? Тот факт, что кто-то использует(а точнее, одна из комманд, и то - не факт, ибо этому описанию сто лет в обед) - подвтерждает, что там написано что-то другое?:) https://cloud.google.com/storage/docs/json_api/v1/status-codes Тут от авторизации до ratelimit`а ошибки. Что из этого должно следовать? Что 403 используют только для доступ запрещен? Ну да-ну да. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:41 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей Панфиловреализовывать бизнес-логику на 4xx - это все равно что реализовывать бизнес-логику на исключениях. к чему это вообще? Есть определенный подход, рест, у него есть определенные варианты использования, есть наработанные практики...причем тут замечание какого-то человека о том, что там можно , а что нет? Уже используются эти исключения в очень большом кол-ве мест, и это не зависит от вашего мнения по этому поводу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:43 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Озверинвы не можете перевести обычную фразу?Я могу даже больше перевести, но вся суть отражается одним словом: forbidden - запрещено, в приведенном мной сценарии никаких запретов нет - нужно подтвердить действие. ОзверинТут от авторизации до ratelimit`а ошибки. Что из этого должно следовать? Что 403 используют только для доступ запрещен? Ну да-ну да. а по вашему ratelimit не относится к тарифному плану и, как следствие, к авторизации? Озверинк чему это вообще? Есть определенный подход, рест, у него есть определенные варианты использования, есть наработанные практики...причем тут замечание какого-то человека о том, что там можно , а что нет? Уже используются эти исключения в очень большом кол-ве мест, и это не зависит от вашего мнения по этому поводу. Со стороны инфраструктуры (не приложения), клиент, постоянно генерирующий ошибки, выглядит довольно подозрительно, а с вашим подходом получается примерно так: ну тут пофиг что от кого-то идет постоянный трафик с 403 - это не хакер, это у нас бизнес-логика так реализована. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:50 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей Панфилова по вашему ratelimit не относится к тарифному плану и, как следствие, к авторизации? вряд ли хоть один нормальный человек скажет, что рейтлимит относится к авторизации ;) Но вы можете продолжать нести демагогоию на этот счет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:54 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
ОзверинАндрей Панфилова по вашему ratelimit не относится к тарифному плану и, как следствие, к авторизации? вряд ли хоть один нормальный человек скажет, что рейтлимит относится к авторизации ;) Но вы можете продолжать нести демагогоию на этот счет. p.s. к слову, рейтлимит - это бизнеслогика, потому что на нем завязана оплата. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:55 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
С дубов вы, что ли, все попадали? Причин, по которым вводятся лимиты на скорость скачивания и частоту запросов - вагон и маленькая тележка. Авторизация и тарифные планы в этих причинах - не на первом месте. Мягко говоря. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:57 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Basil A. SidorovС дубов вы, что ли, все попадали? Причин, по которым вводятся лимиты на скорость скачивания и частоту запросов - вагон и маленькая тележка. Авторизация и тарифные планы в этих причинах - не на первом месте. Мягко говоря. не, это пятница, а человеку хочется дискуссий...видимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 11:58 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Озверинp.s. к слову, рейтлимит - это бизнеслогика, потому что на нем завязана оплата.В каком это месте рейтлимит бизнеслогика-то? - аутентификация: мы тебя знать не знаем, давай свои креденшелы мы тебя проверим - авторизация: мы тебя знаем, но вот сюда тебе нельзя, потому что мы так решили т.е. "вы превысили порог количества обращений (в секунду, и пр.) - несите бабки" - это авторизация, прилетает сообщение оно от инфраструктуры , а бизнес-логика сюда натягивается из отдела продаж гугла, а не из моего приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 12:08 |
|
Какой код ответа вернуть в HttpServletResponse, если действие над объектом запрещено?
|
|||
---|---|---|---|
#18+
Андрей ПанфиловОзверинp.s. к слову, рейтлимит - это бизнеслогика, потому что на нем завязана оплата.В каком это месте рейтлимит бизнеслогика-то? - аутентификация: мы тебя знать не знаем, давай свои креденшелы мы тебя проверим - авторизация: мы тебя знаем, но вот сюда тебе нельзя, потому что мы так решили т.е. "вы превысили порог количества обращений (в секунду, и пр.) - несите бабки" - это авторизация, прилетает сообщение оно от инфраструктуры , а бизнес-логика сюда натягивается из отдела продаж гугла, а не из моего приложения. а повторите запрос через 10 секунд - это что:? Тоже авторизация? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 12:25 |
|
|
start [/forum/topic.php?fid=59&msg=39774309&tid=2121477]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 168ms |
0 / 0 |