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
45
無理なく続けるサイボウズの社内勉強会
cybozuinsideout
PRO
1
530
kintone開発組織のAWSエンジニアの紹介
cybozuinsideout
PRO
0
92
kintone開発組織のサービスプラットフォームチームの紹介
cybozuinsideout
PRO
0
68
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
6
40k
2024/11/25 ReDesigner Online Meetup 会社紹介
cybozuinsideout
PRO
0
440
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
52k
テクニカルライティング
cybozuinsideout
PRO
4
680
サイボウズのアジャイルクオリティ2024
cybozuinsideout
PRO
3
570
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
22k
Go製のマイグレーションツールの git-schemalex の紹介と運用方法
shinnosuke_kishida
1
410
Proxmox VE超入門 〜 無料で作れるご自宅仮想化プラットフォームブックマークする
devops_vtj
0
120
ソフトウェアプロジェクトの成功率が上がらない原因-「社会価値を考える」ということ-
ytanaka5569
0
130
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
300
OCI見積もり入門セミナー
oracle4engineer
PRO
0
120
LINEギフトのLINEミニアプリアクセシビリティ改善事例
lycorptech_jp
PRO
0
240
お問い合わせ対応の改善取り組みとその進め方
masartz
1
370
「家族アルバム みてね」を支えるS3ライフサイクル戦略
fanglang
0
170
製造業の会計システムをDDDで開発した話
caddi_eng
3
960
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Family Album Through the Lens of Databases
kohbis
2
140
Amazon GuardDuty Malware Protection for Amazon S3を使おう
ryder472
2
100
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Site-Speed That Sticks
csswizardry
4
450
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
For a Future-Friendly Web
brad_frost
176
9.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Fireside Chat
paigeccino
37
3.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Gamification - CAS2011
davidbonilla
81
5.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
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