Flask
pythonのフレームワークの一種。デザインパターンはMVC(Model-View-Controller)。
flask基本原型
application.py
requirements.txt
static/
templates/
- application.py ・・・webサーバ用のpythonコードが書かれている
- requirements.txt・・・このアプリケーションに必要なライブラリのリストが含まれる
- static/・・・CSSやJavaScriptファイルなどの静的ファイルのディレクトリ
- templates/・・・最終的なHTMLの作成に使用されるファイルのディレクトリ
SessionとCookie
Session
Webサーバが各ユーザに関する情報をサーバーに記憶する方法のこと。これによってログインしたままにできる。
- 保存場所・・・サーバー側にセッションデータが、クライアント側にセッションIDがクッキーとして保存される
- 持続性・・・ユーザーがブラウザを閉じるか、サーバー側で設定されたタイムアウト時間が経過するまで持続
Cookie
ブラウザに保存するウェブサーバからの小さなデータ。多くの場合、これらは大きな乱数または文字列を使い一意に識別し追跡するために使用される。
- 保存場所・・・クライアント側に保存される。ユーザーのブラウザ
- 持続性・・・指定された有効期間。またはユーザーがブラウザを閉じるまで
1. クライアント --> [リクエスト] --> サーバー
2. サーバー --> [セッションID生成, クッキーにセット] --> クライアント
3. クライアント (クッキーを保存)
4. クライアント --> [リクエスト + クッキー] --> サーバー
5. サーバー --> [セッションIDでユーザーを識別] --> クライアント
セッションとクッキーは連動している。クライアント側のアクセスによって生成されたセッションIDはクッキーに保存され、Set-Cookie
ヘッダーを使ってブラウザに保存される。
セッションデータはアプリの規模によって、サーバ側のメモリに保存されたり、データベースに保存されたり、(RedisやMemcached)といったキャッシュストアに保存される。
Ajax、API
Asynchronous JavaScript and XML・・・Webページを更新せずに非同期的にデータをサーバーとやり取りする技術。ページの一部だけを変更したりするときに使われたりする。
Application Programming Interface・・・異なるソフトウェアアプリケーション間でデータや機能をやり取りするためのインターフェース(接点)。
一般的には、apiを使用してデータの取得等を行う場合にajax通信を行う。