20171005 告白に学ぶ http status code

Post on 21-Jan-2018

209 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

告白に学ぶHTTP Status Code

- エラー編 -

2017/10/05

PHPカンファレンス2017

@takapyyy

※多分最後までいかないので

人材募集してます!

デザイナ/エンジニア@東京 @名古屋 @大阪

※多分最後までいかないので

● REST APIで真価を発揮!適切に使い分けよう!

● 扱う側の扱いやすさを考えよう!

● 伝えきれないことはメッセージに含めよう!

まとめ

HTTP Status Code

HTTPにおいてWebサーバからのレスポンスの意味

を表現する3桁の数字からなるコードで、RFC 2616、

RFC 7231等によって定められている。

参考:https://ja.wikipedia.org/wiki/HTTPステータス

コード

HTTP Status Code

HTTPにおいてWebサーバからのレスポンスの意味

を表現する3桁の数字からなるコードで、RFC 2616、

RFC 7231等によって定められている。

参考:https://ja.wikipedia.org/wiki/HTTPステータス

コード

Laravelでいうところのこれ

Route::get('home', function () {

return response('Hello World', 200)

->header('Content-Type', 'text/plain');

});

Laravelでいうところのこれ

Route::get('home', function () {

return response('Hello World', 200)

->header('Content-Type', 'text/plain');

});

ざっくり

1xx Informationリクエストは受け取られた。処理は継続される。

2xx Successリクエストは受け取られ、理解され、受理された。

3xx Redirectionリクエストを完了させるために、追加的な処理が必要。

4xx Client Errorクライアントからのリクエストに誤りがあった。

5xx Server Errorサーバがリクエストの処理に失敗した。

ざっくり

1xx Informationリクエストは受け取られた。処理は継続される。

2xx Successリクエストは受け取られ、理解され、受理された。

3xx Redirectionリクエストを完了させるために、追加的な処理が必要。

4xx Client Errorクライアントからのリクエストに誤りがあった。

5xx Server Errorサーバがリクエストの処理に失敗した。

こんないっぱい覚えられないよ...

そんなあなたに!

はい!お願いします///あっ、あの!

付き合って下さい!

サーバークライアント

はい!お願いします///

OKです!あっ、あの!

付き合って下さい!

OKの例

OKです!

Response

はい!お願いします///

Request

あっ、あの!

付き合って下さい!

OKの例

※多分最後までいかないので

おもんないやつはとばします

1xx

Information

継続。

クライアントはリクエストを継続できる。サーバが

リクエストの最初の部分を受け取り、まだ拒否して

いないことを示す。

100 Continue

話があるんだけ

ど!

100 Continue

ほほう、それでそ

れで?

2xx

Success

200 OK

OK。

リクエストは成功し、レスポンスとともに要求に応

じた情報が返される。

はい!

お願いします///

付き合って下さ

い!

200 OK

3xx

Redirection

300 Multiple Choices

複数の選択。

リクエストしたリソースが複数存在し、ユーザやユ

ーザーエージェントに選択肢を提示するときに返さ

れる。

佐藤さん2人いる

んだよね

どっち?

佐藤さん付き合っ

て下さい!

300 Multiple Choices

こっから本編!

4xx

Client Error

こっちが悪い

400 Bad Request

リクエストが不正である。

定義されていないメソッドを使うなど、クライアン

トのリクエストがおかしい場合に返される。

ごめんなさい

ちゃんと目をみて

告白してくれなき

ゃイヤ!

付き合って下さ

い!

400 Bad Request

401 Unauthorized

認証が必要である。

Basic認証やDigest認証などを行うときに使用される。

おまえに娘はやら

ん!

娘さんを下さい!

401 Unauthorized

402 Payment Required

支払いが必要である。

現在は実装されておらず、将来のために予約されて

いるとされる。

この壷買ってくれ

る?♡

付き合って下さ

い!

402 Payment Required

403 Forbidden

禁止されている。

リソースにアクセスすることを拒否された。リクエ

ストはしたが処理できないという意味。アクセス権

がない場合や、ホストがアクセス禁止処分を受けた

場合などに返される。

娘とは接近禁止じゃ!

二度とくんじゃねえ!

娘さんに会わせて

下さい!

403 Forbidden

404 Not Found

未検出。

リソースが見つからなかった。

単に、アクセス権がない場合などにも使用される。

...おかけになった電話番号は

現在使われておりません...

もしもし、俺やけ

最近げんき?

404 Not Found

405 Method Not Allowed

許可されていないメソッド。

許可されていないメソッドを使用しようとした。

例えば、POSTメソッドの使用が許されていない場

所で、POSTメソッドを使用した場合に返される。

(そういうのは直

接会っていってほ

しいな)、っと

(ポチポチ

(付き合って下さ

い!)、っと(ポ

チポチ

405 Method Not Allowed

406 Not Acceptable

受理できない。

Accept関連のヘッダに受理できない内容が含まれて

いる場合に返される。

私はあなたに似合

う人じゃないわ。。

付き合って下さ

い!

406 Not Acceptable

407 Proxy Authentication Required

プロキシ認証が必要である。

プロキシの認証が必要な場合に返される。

ごめんなさい

先にけいこちゃん

に聞いてからにし

て><

付き合って下さ

い!

407 Proxy Authentication Required

408 Request Timeout

リクエストタイムアウト。

リクエストが時間以内に完了していない場合に返さ

れる。

はよいえ

....付き合

408 Request Timeout

409 Conflict

競合。

要求は現在のリソースと競合するので完了できない。

ごめんね。

私、カレシいるん

だ...

付き合って下さ

い!

409 Conflict

消滅した。

リソースは恒久的に移動・消滅した。どこに行った

かもわからない。

404 Not Foundと似ているが、こちらは二度と復活

しない場合に使われる。

410 Gone

(あの子はも

う...)

付き合って下さ

い!

410 Gone

前提条件で失敗した。

前提条件が偽だった場合に返される。

412 Precondition Failed

私、年上好きって

いったぢゃん。。

おねえさん!

付き合って下さい!

412 Precondition Failed

ペイロードが大きすぎる。

リクエストエンティティがサーバの許容範囲を超え

ている場合に返す。

例:アップローダの上限を超えたデータを送信しよ

うとした。

413 Payload Too Large

なげえ

...

413 Payload Too Large

突然呼び出してごめんね。

今日いい天気だよね。あ

っ、こんなことがいいた

いんじゃなくて、ここ数

日けいこのこと考えたら

寝れなく日々が続いちゃ

ってさwこんなん言われ

てもきもいよねwでもそ

れくらい俺がけいこのこ

と考えてるのはわかって

ほしい。かわいいし優し

いしいつも笑顔で俺は癒

やされててずっと一緒に

いたいなって思っちゃっ

て...。毎日気づいたら目

でおっちゃってて自分で

私はティーポット。

エイプリルフールネタ。

418 I’m a tea pot.

私はティーポット

なのよ

コーヒーいれても

良い?

418 I’m a teapot

PSR-8 Mutually Assured Hug

Mutually Assured Hug (相互高信頼性ハグ)

この標準は、オブジェクトが互いの感謝と支持を表

明するための、一般的な方法を確立します。

これでオブジェクトは、建設的な方法で互いをサポ

ートすることができ、異なるPHPプロジェクト間の

協力を促進します。

https://qiita.com/tanakahisateru/items/3f24014a91744c2b04fe

PSR-8 Mutually Assured Hug

法的理由により利用不可。

403 Forbiddenから派生したステータスコード。

451 Unavailable For Legal Reasons

法律はまだそこま

でいってないんで

すよ

Hey!! Siri!!

付き合って下さ

い!

451 Unavailable For Legal Reasons

5xx

Server Error

こっちが悪い

サーバ内部エラー。

サーバ内部にエラーが発生した場合に返される。

例として、CGIとして動作させているプログラムに

文法エラーがあったり、設定に誤りがあった場合な

どに返される。

500 Internal Server Error

ごめん、ちょっと

今体調悪くて...

付き合って下さ

い!

500 Internal Server Error

不正なゲートウェイ。

ゲートウェイ・プロキシサーバは不正な要求を受け

取り、これを拒否した。

502 Bad Gateway

けいこちゃん?

もういないわよ...?

けいこさん!付き

合って下さい!

502 Bad Gateway

Proxyみたいなやつ

サービス利用不可。

サービスが一時的に過負荷やメンテナンスで使用不

可能である。例として、アクセスが殺到して処理不

能に陥った場合に返される。

503 Service Unavailable

アッ...アッ...ツキアッテクダサイ!!

ツキアッテクダサイ!!

ツキアッテクダサイ!!

ツキアッテクダサイ!!

503 Service Unavailable

ゲートウェイタイムアウト。

ゲートウェイ・プロキシサーバはURIから推測され

るサーバからの適切なレスポンスがなくタイムアウ

トした。

504 Gateway Timeout

けいこちゃんから

返事がないわ。ご

めんなさい

けいこさん!

付き合って下さ

い!

504 Gateway Timeout

< おっおねg...

Proxyみたいなやつ

懇親会でお会いしましょう!!

top related