Odpowiedzieć +1 na Barts - ze względów bezpieczeństwa. Zwykle zgadzam się, że 409 to dobry kod statusu dla czegoś. to już istnieje. Ale w środowisku kont użytkowników/uwierzytelniania/autoryzacji itp. Nie ujawniałbym istniejących kont użytkowników w bazie danych.
Oczywiście istnieją inne mechanizmy zabezpieczenia w tym miejscu. Jeśli nie masz nic przeciwko wyeksponowaniu niewielkiej liczby kont, możesz dodać zachowanie do aplikacji, które zwraca 401 lub 403 na wielu 409 zdarzeniach z jednego adresu IP.
Inną opcją (ogólnie) jest samodzielne zdefiniowanie kodu statusu, aby mieć 2xx, który różni się od istniejących standardowych wariantów 2xx. Może to być opcja, jeśli nie chcesz obsłużyć "już istnieje" jako błędu. Byłoby to jednak postrzegane jako niestandardowe i miałoby taki sam niebezpieczny charakter jak 409 w twoim konkretnym przykładzie.
Nie sądzę, że to dobry pomysł. Jeśli połączenie jest nawiązywane za pośrednictwem proxy, wyniki mogą być nieprzewidywalne. – Cheery
Myślę, że to dobry pomysł! Ponieważ HTTP ma kod statusu, więc używaj ich! Jest także bardzo przydatny, gdy trzeba później debugować i mieć tylko pliki dostępu lub inne pliki dziennika, ale jeśli istnieje kod HTTP ... :) – powtac
'409 - Konflikt' jest bardzo dobrym wyborem dla tego rodzaju reakcji. –