助け合いフォーラム
CCNP ENCOR(350-401)
問題ID : 27017
問題を開く
ステータスコード「400 Bad Request」の原因として最も適していると考えられるものはどれか。
この問題はプレミアムコンテンツです。
「400 Bad Request」の原因について
k
kz5835
公開日 2023/05/01
上記問題の正答の選択肢「リクエストで指定するURIの構文が間違っている」の細部について、質問させてください。
直感的にはURIが誤っていると、存在しないリソースを指すことになるので、該当するHTTP応答のステータスコードは
404になる様に思われます。
これを考慮にいれますと、上記選択肢の「URIの構文が間違っている」とは、GETのリクエストラインの?以降のクエリ部分
が誤っているという意味であり、URI誤りで400になるのはGETのリクエストラインでのクエリ部分誤りの場合のみで
その他の場合(GETの?より前の部分や他のメソッドでのURI誤り)の場合には、404になるとの理解であっているでしょうか。
すみませんが、ご存じの方がいらしたら、教えてください。
よろしくお願いします。
2023/05/01 21:17
おおよそその理解であっていると思いますが、常に必ずそうとは限りません。
というのは、CGI などの動的Web アプリケーションの場合は、どのようなHTTP ステータスコードを返すかは開発者が自由に決められるためです。GET の?より前の部分に誤りがあったときに、HTTP 403ではなくHTTP 400を返すようにプログラミングされたWeb アプリケーションもあるかもしれませんし、Web アプリケーション側のバグにより不適切な場面でHTTP 400が返されることも考えられます。
厳密なルールというよりも、ガイドライン的なものと考えるのがいいかもしれません。
コメント
この投稿に対して返信しませんか?
k kz5835
2023/05/01 21:28
tnishita2様 ご回答、有難うございます。おかげさまで、概ね、理解できました。 すみませんが、「GET の?より前の部分に誤りがあったとき」と「CGI などの動的Web アプリケーション」との関係について、質問させてください。 もし、GET の?より前の部分に誤りがありますと、正しいURIが指し示すWeb アプリケーションに情報が届かず、そのWebアプリケーションからの応答は返らないということにはならないのでしょうか。 もし、可能でしたら、教えて下さい。 宜しくお願いします。