Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HTTPステータスコード 完全に理解した
Search
unsoluble_sugar
February 27, 2020
Technology
0
5.2k
HTTPステータスコード 完全に理解した
『完全に理解した人達の「Web技術」Talk #2 』の発表スライドです
https://easy2.connpass.com/event/167520/
unsoluble_sugar
February 27, 2020
Tweet
Share
More Decks by unsoluble_sugar
See All by unsoluble_sugar
Claude Code 超入門 バイブコーディングでつくる自分用ニュースまとめ
unsoluble_sugar
0
14
ゆるいエンジニアリングコミュニティはいいぞ
unsoluble_sugar
0
110
Godot Engineについて調べてみた
unsoluble_sugar
0
850
ドキュメント翻訳から始めるOSS推し活
unsoluble_sugar
0
2.6k
VC ClientでRVC完全に理解した / rvc-with-vcclient-completely-understood
unsoluble_sugar
0
2.2k
VCCでVRChatにVRMアバターをアップロードする方法完全に理解した
unsoluble_sugar
0
610
技術選定完全に理解した
unsoluble_sugar
0
570
「未経験からエンジニア」でやり抜いた時の昔話
unsoluble_sugar
0
2.7k
Coursera完全に理解した
unsoluble_sugar
0
4.4k
Other Decks in Technology
See All in Technology
困ったCSVファイルの話
mottyzzz
0
260
Databricks Free Edition講座 データエンジニアリング編
taka_aki
0
2.7k
【Agentforce Hackathon Tokyo 2025 発表資料】みらいシフト:あなた働き方を、みらいへシフト。
kuratani
0
120
RALGO : AIを組織に組み込む方法 -アルゴリズム中心組織設計- #RSGT2026 / RALGO: How to Integrate AI into an Organization – Algorithm-Centric Organizational Design
kyonmm
PRO
3
1.4k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
1
810
国井さんにPurview の話を聞く会
sophiakunii
1
390
2026/01/16_実体験から学ぶ 2025年の失敗と対策_Progate Bar
teba_eleven
1
180
新米スクラムマスターの4ヶ月 -「スクラムイベントを回しているのに手応えがない」からの脱出 / Four Months as a New Scrum Master — When Scrum Events Were Running, but Nothing Felt Right
owata
0
140
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
AWSと生成AIで学ぶ!実行計画の読み解き方とSQLチューニングの実践
yakumo
2
540
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
540
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
9
35k
Done Done
chrislema
186
16k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
410
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
240
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
610
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
100k
Tell your own story through comics
letsgokoyo
1
780
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
360
What's in a price? How to price your products and services
michaelherold
246
13k
How to train your dragon (web standard)
notwaldorf
97
6.5k
Transcript
HTTPεςʔλείʔυ શʹཧղͨ͠
@unsoluble_sugar TOPGATE, Inc. Leader/Engineer
https://unsolublesugar.com
https://qiita.com/unsoluble_sugar
HTTP εςʔλείʔυ શʹཧղͯ͠·͔͢ʁ
ฉ͍ͨ͜ͱ͋Δ શʹཧղͨ͠ ԿΘ͔Βͳ͍ νϣοτσΩϧ
HTTPεςʔλείʔυͱ • ݫີʹHTTPϨεϙϯεͷεςʔλείʔυ • αʔό͔ΒͷϨεϙϯεͷҙຯΛද͢3ܻͷࣈίʔυͷ͜ͱ • ಛఆͷHTTPϦΫΤετ͕ਖ਼ৗʹ͔ྃͨ͠Λࣔ͢
HTTPϨεϙϯε Ϩεϙϯεϝοηʔδେ͖̏͘छྨͷใʹ͚ΒΕΔ εςʔλεϥΠϯ ʢϓϩτίϧ εςʔλείʔυ ςΩετϑϨʔζʣ )551Ϩεϙϯεϔομ )551ϨεϙϯεϘσΟ
εςʔλείʔυϔομ1ߦ HTTP/1.1 200 OK Date: Sat, 22 Feb 2020 08:09:30
GMT Content-Type: application/json; charset=utf-8 Connection: keep-alive Server: nginx ETag: "e287c729017cc9785487098b6b103af6" Cache-Control: max-age=0, private, must-revalidate X-UA-Compatible: IE=Edge,chrome=1 X-Runtime: 0.003487
εςʔλείʔυ5ͭͷΫϥεʹྨ 100൪ɿใϨεϙϯε 200൪ɿޭϨεϙϯε 300൪ɿϦμΠϨΫτ 400൪ɿΫϥΠΞϯτΤϥʔ 500൪ɿαʔόΤϥʔ
100൪ ใϨεϙϯε
100൪ • ॲཧ͕ܧଓ͍ͯ͠Δ͜ͱΛࣔ͢ • ΫϥΠΞϯτͦͷ··ϦΫΤετΛܧଓ͢Δ͔ɺαʔόʔͷ ࢦࣔʹैͬͯϓϩτίϧΛΞοϓσʔτͯ͠࠶ૹ৴͢Δ • HTTP/1.0نʹ1xx൪߸ͷఆ͕ٛͳ͍ͨΊɺ100൪͋·Γ ར༻͞Εͳ͍
100൪ • 100 Continue αʔό͕ϦΫΤετͷड৴Λ͠ڋ൱͍ͯ͠ͳ͍ɻΫϥΠΞϯτ ϦΫΤετΛܧଓͰ͖Δ • 101 Switching Protocols
αʔόϓϩτίϧͷΓସ͑Λཁٻ͍ͯ͠Δ
200൪ ޭϨεϙϯε
200 OK • ޭ࣌ʹฦ͢εςʔλείʔυͱͯ͠࠷ଟ༻͞ΕΔ • ϦΫΤετͨ͠ॲཧ͕ޭɺࢦఆͨ͠σʔλͷऔಘʹޭ • GETɿϘσΟʹϦιʔεؚ͕·ΕΔ • PUT,
POSTɿϘσΟʹॲཧ݁Ռؚ͕·ΕΔ
201 Created • POST, PUTɿϦΫΤετ͕ޭ͠Ϧιʔε͕࡞͞Εͨ • POSTͷ߹ϨεϙϯεͷLocationϔομʹURI͕ೖΔ • Ϣʔβʔ৽نొɺը૾ΞοϓϩʔυɺDBͷςʔϒϧՃͳͲ •
ϘσΟʹ৽͘͠࡞ͨ͠ϦιʔεΛೖΕΔ͜ͱ͕ଟ͍͕ɺಛ ʹԿೖΕͳͯ͘ྑ͍
202 Accepted • ϦΫΤετडཧ͞Ε͕ͨɺ·ͩॲཧ͕͍ྃͯ͠ͳ͍ • ϑΝΠϧܗࣜͷมϓογϡ௨ͷϦΫΤετɺόονॲཧ ͳͲɺαʔόଆͰඇಉظʹߦ͏ॲཧ͕͋Δ߹ʹฦ͢
204 No Content • ϨεϙϯεϘσΟ͕ۭͷͱ͖ʹฦ͢ • DELETEͰσʔλআΛߦͬͨࡍʹฦ͢ • POSTͰϑΥʔϜ༰Λૹ৴͕ͨ͠ը໘ߋ৽͕ͳ͍߹ •
PUTPATCHͰਖ਼͘͠σʔλߋ৽͞Εͨ߹ • DELETEҎ֎Ͱ͋·Γ͏͖Ͱͳ͍ͱ͍͏ҙݟ͋Δ
205 Reset Content • ϢʔβʔΤʔδΣϯτͷը໘ΛϦηοτ͢Δ߹ʹฦ͞ΕΔ • 204ͱಉ͘͡ϨεϙϯεϘσΟͳ͠
300൪ ϦμΠϨτ
300 Multiple Choices • ϦΫΤετʹରͯ͠ෳͷϨεϙϯε͕͋Δ͜ͱΛࣔ͢ • બࢶϦϯΫ͢ΔHTML͕ఏࣔ͞ΕɺϢʔβʔΤʔδΣϯτ ϢʔβʔͦΕΒ͔ΒͻͱͭΛબ͢Δ
301 Moved Permanently • ϦΫΤετ͞ΕͨϦιʔεͷURL͕߃ٱతʹมߋ͞Εͨ • WebαΠτͷҠసɺHTTP͔ΒHTTPSͷϦμΠϨΫτͳͲ • LocationϔομʹҠಈઌͷURL͕ࣔ͞ΕΔ
302 Found • ϦΫΤετ͞ΕͨϦιʔεͷURL͕Ұ࣌తʹมߋ͞Εͨ • LocationϔομʹҠಈઌͷURL͕ࣔ͞ΕΔ • ࣮ࡍ303ͷ༻్ͰΘΕΔ͜ͱ͕ଟ͘ɺ307ͱͯ͠࠶ఆٛ͞ ΕͨͨΊݱࡏਪ͞Ε͍ͯͳ͍
303 See Other • ϦΫΤετ͞ΕͨϦιʔεΛผͷURIͰऔಘͰ͖Δ͜ͱΛࣔ͢ • LocationϔομʹҠಈઌͷURL͕ࣔ͞ΕΔ • ϒϥβͷϑΥʔϜ͔ΒPOSTͰॲཧΛߦͬͨϨεϙϯεͱ͠ ͯɺ݁Ռը໘ʹϦμΠϨΫτ͢Δͱ͖ʹ͏
307 Temporary Redirect • Ұ࣌తϦμΠϨΫτ • 302ͷن֨֎ͳ༻๏͕ԣߦͨͨ͠Ί࠶ఆٛͨ͠ͷ • LocationϔομʹҠಈઌͷURL͕ࣔ͞ΕΔ •
ϢʔβʔΤʔδΣϯτ༻͢ΔHTTPϝιουΛมߋͯ͠ͳ Βͳ͍
308 Permanent Redirect • ߃ٱతϦμΠϨΫτ • 301ͷن֨֎ͳ༻๏͕ԣߦͨͨ͠Ί࠶ఆٛͨ͠ͷ • LocationϔομʹҠಈઌͷURL͕ࣔ͞ΕΔ •
ϢʔβʔΤʔδΣϯτ༻͢ΔHTTPϝιουΛมߋͯ͠ͳ Βͳ͍
400൪ ΫϥΠΞϯτΤϥʔ
400 Bad Request • ϦΫΤετ͕ෆਖ਼ • ఆٛ͞Ε͍ͯͳ͍ϝιουΛͬͨΓɺύϥϝʔλʹؒҧ͍͕ ͋ΔͳͲɺΫϥΠΞϯτͷϦΫΤετ͕͓͔͍͠߹ • ΄͔ʹదͳΫϥΠΞϯτΤϥʔΛࣔ͢εςʔλείʔυ͕ͳ
͍߹ʹ༻͍Δ
401 Unauthorized • ೝূΤϥʔ • ϩάΠϯ͕ඞཁͳϖʔδͰIDύεϫʔυΛؒҧ͑ͨ߹ • ϦΫΤετʹඞཁͳAuthorizationϔομΛؚ·ͳ͍߹ • τʔΫϯ͕ࣦޮɺഁଛ͍ͯ͠ΔͳͲෆਖ਼ͳ߹
403 Forbidden • ೝՄΤϥʔ • ڐՄ͞Ε͍ͯͳ͍ͳͲͷཧ༝ͰΫϥΠΞϯτͷΞΫηεݖݶ͕ ͳ͘ɺαʔό͔ΒͷϨεϙϯε͕ڋ൱͞Εͨ • ಛఆͷIPΞυϨεͷΈ͔ΒΞΫηεͰ͖Δ߹ͳͲʹ༻͍Δ •
401ͱҟͳΓɺΫϥΠΞϯτͷࣝผ͞Ε͍ͯΔ
404 Not Found • ϦΫΤετ͞ΕͨϦιʔε͕ଘࡏ͠ͳ͍ • WebͰසൟʹݟΒΕΔ༗໊ͳΤϥʔεςʔλείʔυͷͻͱͭ • ͦͦURIࣗମ͕ଘࡏ͠ͳ͍ͷ͔ɺऔಘରͷϦιʔε͕ଘࡏ͠ͳ͔ͬ ͨͷ͔ͳͲɺৄࡉใΛࣔ͢ඞཁ͕͋Δ
• ڐՄ͞Ε͍ͯͳ͍ΫϥΠΞϯτ͔ΒϦιʔεͷଘࡏΛӅͨ͢Ίɺ 403ͷ ΘΓʹ404Λฦ͢͜ͱ͋Δ
405 Method Not Allowed • ΤϯυϙΠϯτଘࡏ͢Δ͕ڐՄ͞Ε͍ͯͳ͍HTTPϝιου • GETͰΞΫηεՄೳͳݕࡧAPIΛPOSTͰ༻͠Α͏ͱͨ͠߹ • API͕ϦιʔεͷDELETEΛېࢭ͍ͯ͠Δ߹
408 Request Timeout • ࢦఆ࣌ؒʹϦΫΤετ͕ྃ͠ͳ͔ͬͨ • ChromeɺFirefoxͳͲɺӾཡΛߴԽ͢ΔͨΊͷHTTPࣄલଓ ػೳΛ༻͢ΔϒϥβͰΑ͘༻͞ΕΔ • ճઢͷଓ͕Լ͍ͯ͠Δ߹ͳͲʹൃੜ
409 Conflict • Ϧιʔεͷڝ߹͕ൃੜͨ͠߹ • ͢Ͱʹଘࡏ͢ΔϝʔϧΞυϨεಉҰIDͷϢʔβʔొΛߦ͓ ͏ͱͨ࣌͠ • ۭͰͳ͍σΟϨΫτϦΛআ͠Α͏ͱͨ͠ΓɺϦιʔεͷ໊ લΛ͢ͰʹଞͰΘΕ͍ͯΔͷʹมߋ͠Α͏ͱͨ࣌͠ͳͲ
410 Gone • ϦΫΤετ͞Εͨίϯςϯπ͕αʔό͔ΒӬٱʹআ͞ΕɺసૹઌΞυϨε ͕ͳ͍߹ • 404ͱҧ͍ʮ͔ͭͯଘࡏ͍͕ͯͨ͠ࠓ͏ଘࡏ͍ͯ͠ͳ͍ʯ͜ͱΛද͢ • ظؒݶఆͷϓϩϞʔγϣϯαΠτͳͲͰར༻͢Δ͜ͱΛҙਤ͍ͯ͠Δ •
ϢʔβʔใΛѻ͏APIͰ410Λฦ༷͢ɺݸਓใอޢͷ؍͔Βࢹ ͞ΕΔՄೳੑ͋Δʢআͨ͠ͱ͍͏ใΛอ͍࣋ͯ͠Δ㲈શʹআ͞Εͯ ͍ͳ͍ʣ
413 Payload Too Large • ϦΫΤετϔομɺϘσΟ͕αʔόͰఆΊ͍ͯΔ্ݶΛ͑ͯ ͍Δ͜ͱΛࣔ͢ • ڐ༰αΠζҎ্ͷϑΝΠϧΞοϓϩʔυ͕ߦΘΕͨ࣌ͳͲ •
αʔόίωΫγϣϯΛด͡Δ͔ɺRetry-After ϔομΛฦ͢
414 URI Too Long • ΫϥΠΞϯτ͕ϦΫΤετͨ͠URI͕ɺαʔόͰѻ͑Δ͞Λ ͍͑ͯΔ • ΫΤϦύϥϝʔλʹա͗Δσʔλ͕ࢦఆ͞Εͨ࣌ͳͲ
415 Unsupported Media Type • ϦΫΤετ͞ΕͨσʔλͷϝσΟΞܗࣜʢContent-Typeʣʹ αʔόʔ͕ରԠ͓ͯ͠Βͣɺαʔό͕ϦΫΤετΛڋ൱ͨ͠ • JSONϦΫΤετ͔͠ड͚औΕͳ͍APIʹXML͕ૹΒΕͨɺα ϙʔτ͢Δը૾ܗࣜҎ֎ͷը૾ΛΞοϓϩʔυ͠Α͏ͱͨ࣌͠
ͳͲ
429 Too Many Requests • ΞΫηεճ͕ڐ༰ൣғͷݶքΛ͑ͨ߹ʹฦ͢ • 2012ʹRFC6585Ͱఆٛ͞Εͨ৽͍͠εςʔλείʔυ • Ұఆͷ࣌ؒʹϨʔτϦϛοτΛ͑ΔେྔͷϦΫΤετΛૹ
৴ͨ͠ʢྫɿ1ؒʹ60ճͳͲͷAPIϦΫΤετ੍ݶʣ
500൪ αʔόΤϥʔ
500 Internal Server Error • αʔόଆʹԿΒ͔ͷҟৗ͕ൃੜ͠ਖ਼ৗͳϨεϙϯε͕ฦͤͳ͍ • ʮԿΒ͔ͷҟৗ͕ൃੜ͠·ͨ͠ʯతͳΤϥʔϝοηʔδ͕ฦΔ ͜ͱ͕ଟ͘ɺΫϥΠΞϯτଆͰղܾෆೳ •
΄͔ʹదͳΤϥʔίʔυ͕ͳ͍߹ʹ༻͍Δ • αʔόʔͷΤϥʔϩάΛݟΕݪҼ͕Θ͔Δ͔
502 Bad Gateway • ήʔτΣΠ·ͨϓϩΩγʹ͕ൃੜ͍ͯ͠Δ • ήʔτΣΠͱͯ͠ಈ࡞͢Δαʔό͕ແޮͳϨεϙϯεΛड͚ औͬͨ
503 Service Unavailable • αʔό͕ϦΫΤετΛॲཧ͢Δ४උ͕Ͱ͖͍ͯͳ͍ঢ়ଶ • Ұ࣌తͳΞΫηεूதϝϯςφϯεʹΑΓαʔό͕μϯ͠ ͍ͯΔ • ϝϯςφϯεͷ߹ɺRetry-Afterϔομʹ࠶։༧ఆ࣌ظʢ͓
ΑͦԿඵޙ͔ʣΛؚΊΔ͜ͱͰ͖Δ
504 Gateway Timeout • ήʔτΣΠͱͯ͠ಈ࡞͢Δαʔό͕ࢦఆ࣌ؒʹϨεϙϯε ΛಘΒΕͳ͔ͬͨ • αΠτҠߦͳͲʹΑΔҰ࣌తͳDNSҟৗͷ߹
505 HTTP Version Not Supported • ϦΫΤετͨ͠HTTPϓϩτίϧͷόʔδϣϯʹαʔό͕ରԠ͠ ͍ͯͳ͍
None
·ͱΊ εςʔλείʔυΛҙࣝͨ͠ઃܭΛߦ͏͜ͱͰ αʔόͱΫϥΠΞϯτؒͷ։ൃ͕εϜʔζʹਐΉ ෆదͳεςʔλείʔυΛׂΓͯͯ͠·͏ͱ ΫϥΠΞϯτଆ͕ࠞཚ͠ɺγεςϜશମͷڍಈʹࢧোΛ͖ͨ͢͜ͱ… εςʔλείʔυΛཧղ͢Δ͜ͱͰ ͷΓ͚அ͕͘͢͠ͳΔ
ࢀߟॻ੶ WebΛࢧ͑Δٕज़ ᴷ HTTPɺURIɺHTMLɺͦͯ͠REST ࢁຊཅฏɹஶʢWEB+DB PRESS plusʣ 20104݄ ൃߦ Web
API: The Good Parts ਫ و໌ɹஶʢΦϥΠϦʔδϟύϯʣ 201411݄ ൃߦ
ࢀߟURL • HTTP Ϩεϙϯεεςʔλείʔυ - HTTP | MDN https://developer.mozilla.org/ja/docs/Web/HTTP/Status •
IETF Documents https://tools.ietf.org/html/ • HTTPεςʔλείʔυ - Wikipedia https://ja.wikipedia.org/wiki/HTTPεςʔλείʔυ
HTTP εςʔλείʔυ શʹཧղͨ͠ʁ