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サーバー開発課題について / About_HTTP_server_development
Search
Cybozu
PRO
August 19, 2020
Technology
0
60k
HTTPサーバー開発課題について / About_HTTP_server_development
Cybozu
PRO
August 19, 2020
Tweet
Share
More Decks by Cybozu
See All by Cybozu
PSIRTでAIテストを実施するまでの道のり
cybozuinsideout
PRO
0
87
無理なく続けるサイボウズの社内勉強会
cybozuinsideout
PRO
1
1.2k
分散システムにおける 無兆候データ破損の影響について
cybozuinsideout
PRO
1
58
タンパク質構造のシミュレーションソフトウェア試行錯誤
cybozuinsideout
PRO
1
47
読みやすいアセンブリ言語
cybozuinsideout
PRO
1
41
Wasmで拡張できる軽量マークアップ⾔語Brack(後編)
cybozuinsideout
PRO
1
32
Wasmで拡張できる軽量マークアップ⾔語Brack(前編)
cybozuinsideout
PRO
1
37
kintone開発組織のAWSエンジニアの紹介
cybozuinsideout
PRO
0
230
kintone開発組織のサービスプラットフォームチームの紹介
cybozuinsideout
PRO
0
120
Other Decks in Technology
See All in Technology
比起獨自升級 我更喜歡 DevOps 文化 <3
line_developers_tw
PRO
0
850
OCI Oracle Database Services新機能アップデート(2025/03-2025/05)
oracle4engineer
PRO
1
190
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
610
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
170
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
180
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
130
工具人的一生: 開發很多 AI 工具讓我 慵懶過一生
line_developers_tw
PRO
0
830
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
170
OpenTelemetry Collector internals
ymotongpoo
6
570
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.1k
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
2
490
自分を理解するAI時代の準備 〜マイプロフィールMCPの実装〜
edo_m18
0
110
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
329
21k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Optimizing for Happiness
mojombo
379
70k
GitHub's CSS Performance
jonrohan
1031
460k
Building Adaptive Systems
keathley
43
2.6k
BBQ
matthewcrist
89
9.7k
Bash Introduction
62gerente
614
210k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
The Invisible Side of Design
smashingmag
299
51k
A Modern Web Designer's Workflow
chriscoyier
693
190k
What's in a price? How to price your products and services
michaelherold
245
12k
Scaling GitHub
holman
459
140k
Transcript
HTTPサーバー開発課題について 2020/6/22
コンセプト ▌必修講義と同様 l 誰に: 開発/運⽤本部に配属される新⼊社員 l 何を: どのチームに⾏っても必要となる基礎的な知識/技術/ ツールを学び、体験できた ▌具体的には、HTTPという基礎についてRFCを読んで実現する
という活動を通して知識を学び、開発を体験してほしい
やること ▌HTTPサーバーを開発し、最終⽇に成果発表をしてください l 期間: 6/22(⽉)-26(⾦) ▌ルール l チームで⼀つのHTTPサーバーを開発してください l チームにつき⼀⼈メンターがつくので、相談しながら進め
てください l 利⽤する⾔語/ライブラリもチームやメンターと相談して決 めてください
利⽤するライブラリの決め⽅ ▌なるべく学びを多くするという⽬的で選択してください l スキルが弱いチームはライブラリを使って期間内に終えら れた⽅が学びがあるでしょう l ⼒のあるチームはなるべくライブラリを使わず作った⽅が 学びがあるでしょう ▌メンターと相談しつつ決めてください
参考: 2018年の条件 ▌⾔語: Python 3.x ▌ルール l 標準ライブラリの「21.インターネットプロトコルとサポー ト」は利⽤禁⽌ l
それ以外の標準ライブラリは利⽤可能 l 外部ライブラリは利⽤禁⽌
課題のレベル 1. HTTPのリクエストを解析して、解析した結果をコンソールに表⽰する 2. HTTPのリクエストを受け取ったら、固定の値でいいので正しいレスポ ンスを返す l リクエストが不正の時はエラーのレスポンスを返す 3. リクエストのパスに応じて、サーバー上のファイルを読み込んで、その
内容を返す 4. マルチプロセスやマルチスレッドにより、同時に複数のリクエストを処 理できるようにする 5. HTTP/1.1の仕様にできる限り準拠する
進め⽅ ▌社内githubにリポジトリを作ってください l こまめにcommit, pushしてください l branchやPull Requestの使⽤はお任せします ▌課題のレベルに沿って進めるとやりやすいと思います ▌モブプロで実装を進めるのが推奨です
l モブプロをしない場合の作業分担はチームにお任せします lペアプロにしたり、個⼈作業にしたり ▌メンターは1⽇1時間程度サポートするくらいを想定してます
参考情報 ▌今まで実施した講義、演習、技術書精読 l HTTPのRFCは特に⼤事です l 「Webアプリケーション基礎」のEchoサーバーを拡張するといいか も l 正規表現使えるかも l
余裕があればユニットテストを書いてみてください ▌RFC 7230 l https://tools.ietf.org/html/rfc7230 ▌RFC 7231 l https://tools.ietf.org/html/rfc7231