タグ付けされた質問 「http-status-codes」

HTTPステータスコードは、HTTP Web応答で返される標準化されたコードのセットです。サービスが(予期せず)ステータスコードを返す理由に関する質問では、このタグを使用しないでください。

3
パラメータデータを含むPythonリクエストポスト
これは、API呼び出しの未加工のリクエストです。 POST http://192.168.3.45:8080/api/v2/event/log?sessionKey=b299d17b896417a7b18f46544d40adb734240cc2&format=json HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/json Content-Length: 86 Host: 192.168.3.45:8080 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) {"eventType":"AAS_PORTAL_START","data":{"uid":"hfe3hf45huf33545","aid":"1","vid":"1"}}""" この要求は成功(2xx)応答を返します。 今私はこのリクエストを使用して投稿しようとしていrequestsます: >>> import requests >>> headers = {'content-type' : 'application/json'} >>> data ={"eventType":"AAS_PORTAL_START","data{"uid":"hfe3hf45huf33545","aid":"1","vid":"1"}} >>> url = "http://192.168.3.45:8080/api/v2/event/log?sessionKey=9ebbd0b25760557393a43064a92bae539d962103&format=xml&platformId=1" >>> requests.post(url,params=data,headers=headers) <Response [400]> 私にはすべてが問題なく見え、400応答を取得するために何を間違って投稿したかはよくわかりません。



1
HTTP 301と308のステータスコードの違いは何ですか?
HTTP 301と308ステータスコードの違いは何ですか? 301 (恒久的に移動):これ以降のすべてのリクエストは、指定されたURIに送信する必要があります。 308 (永続的なリダイレクト):リクエストと今後のすべてのリクエストは、別のURIを使用して繰り返す必要があります。 彼らは似ているようです。

3
ログインページにリダイレクトするときの正しいHTTPステータスコードは何ですか?
ユーザーがログインしておらず、ログインが必要なページにアクセスしようとすると、ログインページにリダイレクトするための正しいHTTPステータスコードは何ですか。 W3Cによって設定された3xx応答コードの いずれも要件に適合していないように思われるので、私は尋ねています。 10.3.1 300複数の選択肢 要求されたリソースは表現のセットのいずれか1つに対応し、それぞれに固有の場所があり、ユーザー(またはユーザーエージェント)が優先表現を選択してリダイレクトできるように、エージェント駆動の交渉情報(セクション12)が提供されていますその場所へのリクエスト。 HEADリクエストでない限り、レスポンスには、ユーザーまたはユーザーエージェントが最も適切なものを選択できるリソースの特性と場所のリストを含むエンティティが含まれる必要があります(SHOULD)。エンティティの形式は、Content- Typeヘッダーフィールドで指定されたメディアタイプによって指定されます。形式と機能に応じて ユーザーエージェントでは、最も適切な選択肢の選択が自動的に実行される場合があります。ただし、この仕様では、このような自動選択の標準を定義していません。 サーバーが適切な表現の選択肢を持っている場合、その表現の特定のURIをLocationフィールドに含める必要があります。ユーザーエージェントは、自動リダイレクトにLocationフィールドの値を使用できます。特に指定のない限り、この応答はキャッシュ可能です。 10.3.2 301を永続的に移動 リクエストされたリソースには新しい永続的なURIが割り当てられており、このリソースへの今後の参照では、返されたURIの1つを使用する必要があります。リンク編集機能を持つクライアントは、Request-URIへの参照を、可能であればサーバーから返される1つ以上の新しい参照に自動的に再リンクする必要があります。特に指定のない限り、この応答はキャッシュ可能です。 新しい永続URIは、応答のLocationフィールドで指定する必要があります(SHOULD)。リクエストメソッドがHEADでない限り、レスポンスのエンティティには、新しいURIへのハイパーリンクを含む短いハイパーテキストノートを含める必要があります(SHOULD)。 GETまたはHEAD以外のリクエストに応答して301ステータスコードを受信した場合、ユーザーエージェントは、ユーザーが確認できない限り、リクエストを自動的にリダイレクトしてはなりません。これにより、リクエストが発行された条件が変わる可能性があります。 Note: When automatically redirecting a POST request after receiving a 301 status code, some existing HTTP/1.0 user agents will erroneously change it into a GET request. 10.3.3 302が見つかりました リクエストされたリソースは一時的に別のURIに存在します。リダイレクトは時々変更される可能性があるため、クライアントは今後のリクエストに引き続きRequest-URIを使用する必要があります(SHOULD)。この応答は、Cache-ControlまたはExpiresヘッダーフィールドで示されている場合にのみキャッシュ可能です。 一時URIは、応答のLocationフィールドで指定する必要があります(SHOULD)。リクエストメソッドがHEADでない限り、レスポンスのエンティティには、新しいURIへのハイパーリンクを含む短いハイパーテキストノートを含める必要があります(SHOULD)。 GETまたはHEAD以外のリクエストに応答して302ステータスコードを受信した場合、ユーザーエージェントは、ユーザーが確認できない限り、リクエストを自動的にリダイレクトしてはなりません。これにより、リクエストが発行された条件が変わる可能性があります。 Note: RFC 1945 and …

7
応答コード200または201とコンテンツを含むPOSTを使用してリクエストを作成します
新しいデータ項目をシステムに追加することを目的としたRESTサービスを作成するとします。 にPOSTする予定です http://myhost/serviceX/someResources それが機能する場合、どの応答コードを使用する必要がありますか?そして、どんなコンテンツを返せますか。 私はHTTP応答コードの定義を調べており、これらの可能性を確認しています。 200:アクションの結果を説明または含むエンティティを返します。 201:CREATEDを意味します。意味*リクエストが満たされ、新しいリソースが作成されました。新しく作成されたリソースは、応答のエンティティで返されるURIで参照できます。リソースの最も具体的なURIは、Locationヘッダーフィールドで指定されます。レスポンスには、ユーザーまたはユーザーエージェントが最も適切なものを選択できるリソースの特性と場所のリストを含むエンティティを含める必要があります(SHOULD)。エンティティ形式は、Content-Typeヘッダーフィールドで指定されたメディアタイプによって指定されます。* 後者の方がHttp仕様に沿っているように思われますが、何が原因なのかまったくわかりません 応答には、リソースの特性と場所のリストを含むエンティティを含める必要があります(SHOULD)。 手段。 推奨事項?解釈?


4
「アイテムが見つかりません」エラーページに最も適切なHTTPステータスコードは何ですか
「アイテムが存在しない」ページに最も適したHTTPステータスコードは何ですか。 ページ自体が存在しない場合は、明らかに404を使用します。ただし、私のページの1つにuserid引数(「ユーザーの編集」ページ)があり、指定されたユーザーIDのユーザーが存在しない場合は、エラーページですが、4xxステータスヘッダーも送信します(「200 OK」は実際には適合しないため)。 404は「見つかりません」でも「ファイルが見つかりません」でもないので大丈夫だと思いますが、このケースに適したコードがあるかどうか疑問に思います。

4
部分的に成功したリクエストのHTTPステータスコード
ユーザーにメッセージを送信するアプリケーションがあります。ポストリクエストでは、その特定のメッセージを受信する必要があるすべてのユーザーで構成されるXML文字列が転送されます。リスト内のいずれかのユーザーが存在しない場合は、欠落しているユーザーのリストをクライアントに返して、さらに評価します。 ここで、リクエストが受け入れられたが、実行できないことがあったことを示す、アプリケーションの適切なステータスコードを教えてください。 リストに行方不明のユーザーを含めることが許可されていない場合、問題は回避されます。その後、送信しようとすると、4xxエラーが発生します。しかし、このようにAPIを作成しても意味がありません。一方、エラー条件は純粋にアプリケーション固有であると考えることができます。しかし、200を送信するだけでは正しくありません。また、エラーレスポンスを詳しく調べるときに、クライアントにヒントを与えるとよいでしょう。たとえば、そのユーザーに何度もメッセージを送信しないようにする

7
一般的な失敗したリクエスト(エラーではない)に対する適切なHTTPステータスコード応答は何ですか?
保存したクレジットカードを使用した注文など、ユーザーとのさまざまなやり取りを処理するRESTful APIを作成しています。 注文が成功した場合は200 OKを返し、注文リクエストの形式が無効または無効な場合は400 Bad Requestを返します。しかし、注文の実際の処理中に問題が発生した場合はどうすればよいですか? ユーザーリソースのサーバーへのクライアントPOSTS注文。ユーザーが存在しない場合は、404 Not Foundが返されます。 注文の形式と情報が検証されます。無効な場合、400 Bad Requestが返されます。 注文が処理されました。注文が成功すると、注文に対して201 Createdが返されます。予期しないエラーが発生した場合、500サーバーエラーが返されます。 最後のステップは問題です。他の理由で注文が完了しなかった場合はどうすればよいですか?考えられるシナリオは次のとおりです。 商品は売り切れです ユーザーの最大注文数に達しました クレジットカード決済失敗(資金不足等) これは、400と500のどちらにも適しているとは思えません。適切なコードがない場合、400と見なすことができます。ビジネスルールによれば、リクエストは無効でした。正確ではないようです。 編集:同じトピックに関するこの既存のディスカッションも見つかりました。そこにあるすべての回答は、このタイプの違反にステータスコードを使用することを示しているようです。400、409、または422の拡張機能を使用することについての議論もあります。


12
HTTPステータスコード0-エラードメイン= NSURLErrorDomain?
私はiOSプロジェクトに取り組んでいます。 このアプリケーションでは、サーバーから画像をダウンロードしています。 問題: 画像のダウンロード中に、リクエストタイムアウトが発生します。ドキュメントによると、リクエストタイムアウトのHTTPステータスコードは408です。 しかし、私のアプリケーションで0は、次のエラーでHTTPステータスコードを取得しています エラードメイン= NSURLErrorDomainコード= -1001「要求がタイムアウトしました。」UserInfo = 0xb9af710 {NSErrorFailingURLStringKey = http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg、NSErrorFailingURLKey = http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg、NSLocalizedDescription =リクエストがタイムアウトしました。、NSUnderlyingError = 0x13846870 "リクエストがタイムアウトしました。"} インターネットでの検索中に、HTTPステータスコード0に関する情報が見つかりませんでした。 誰かがこれを私に説明できますか?

2
Android:HttpClientリクエストのステータスコードを取得する方法
ファイルをダウンロードしたいのですが、応答ステータスコード(HTTP /1.1 200 OK)を確認する必要があります。これは私のコードの一部です: HttpGet httpRequest = new HttpGet(myUri); HttpEntity httpEntity = null; HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = httpclient.execute(httpRequest); ... 応答のステータスコードを取得するにはどうすればよいですか?

4
HTTP GETに応答して202「Accepted」を返すのは間違っていますか?
表現が怠惰に作成されるリソースのセットがあります。これらの表現を構築するための計算は、サーバーの負荷、特定のリソース、および月の満ち欠けに応じて、数ミリ秒から数時間かかる場合があります。 リソースに対して受信された最初のGET要求は、サーバーで計算を開始します。計算が数秒以内に完了すると、計算された表現が返されます。それ以外の場合は、202の「承認済み」ステータスコードが返され、クライアントは最終的な表現が利用可能になるまでリソースをポーリングする必要があります。 この動作の理由は次のとおりです。結果が数秒以内に利用できる場合は、できるだけ早く取得する必要があります。それ以外の場合は、いつ利用可能になるかは重要ではありません。 メモリが限られており、リクエストの量が非常に多いため、NIOも長いポーリングもオプションではありません(つまり、ほぼ十分な接続を開いたままにすることも、すべてのリクエストをメモリに収めることもできません。「数秒」に1回)。合格したので、超過リクエストを保持します)。同様に、クライアントの制限により、代わりに完了コールバックを処理できません。最後に、POSTする「ファクトリ」リソースを作成することに興味がないことに注意してください。余分なラウンドトリップは、区分的リアルタイム制約を必要以上に失敗させることを意味します(さらに、これは余分な複雑さです。また、これはリソースです。キャッシングのメリット)。 GETリクエストに応答して202の「承認済み」ステータスコードを返すことについては、実際には見たことがないので、いくつかの論争があると思います。最も直感的な使用法は、安全でないメソッドへの応答ですが、これまでに一度もありません。特にそれを思いとどまらせる何かを見つけました。さらに、私は安全性とべき等性の両方を維持していませんか? それで、人々はこのアプローチについてどう思いますか? 編集:これはいわゆるビジネスWeb API用であり、ブラウザ用ではありません。

8
URLのリストのHTTPステータスコードを取得するスクリプト?
それでも機能するかどうかを確認するために確認する必要のあるURLのリストがあります。それを行うbashスクリプトを書きたいと思います。 返されたHTTPステータスコード、つまり200、404、500などだけが必要です。これ以上何もない。 編集ページに「404notfound」と表示されているが、200OKメッセージが返される場合は問題があることに注意してください。これは誤って構成されたWebサーバーですが、このケースを考慮する必要がある場合があります。 詳細については、「404」というテキストを含むページにURLが移動するかどうかを確認するをご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.