Skip to content

Instantly share code, notes, and snippets.

@mesummery
mesummery / Reverse proxy.md
Created October 1, 2017 04:22
リバースプロキシ

冗長化

障害が発生しても予備の機材でシステムの機能を継続できるようにすること。 Webサービスでいえば、webサーバが1つ死んだり障害が発生したりしても、サービスには支障を出さずに運用を続行出来るようにすること。

冗長化の方針

システムを冗長化するとは、

  • 障害を想定する
  • 障害に備えて予備の機材を準備する

ミドルウェア

コンピュータを制御するオペレーティングシステム(OS)と、特定の処理を行うアプリケーションソフトウェアとの仲立ちをするソフトウェアのこと。 OSの基本的な機能だけでは、アプリケーションソフトが必要とする機能(サーバやデータベースとのやり取りなど)をカバーできない場合に、その必要な機能を集約してパッケージとしてまとめたものがミドルウェアで、OS上で作動し、OSよりも具体的な機能をアプリケーションソフトに提供する。

ミドルウェアの存在により、それぞれのアプリケーションは目的に特化した機能だけでよくなる。そのため、アプリケーション開発の際、共通部分を省くことができ、システムの開発や導入の効率化に役立つ。

構成
アプリケーション

Webサーバアーキテクチャ

シリアルモデル

  • 最も単純なモデル
  • 並行処理はせず、逐次に処理するだけ
  • accept、read、writeなどがI/Oが完了するまで処理をブロックする

TIPS: Perlの場合は、HTTP::Server::PSGIがよい実装例。

マルチプロセスモデル

@mesummery
mesummery / WebApp Security.md
Last active October 1, 2017 04:23
Webアプリケーションのセキュリティ
  • Session
  • Cookie
  • JavaScript
  • HTML
  • HTTPメソッド
  • リクエストパラメタやヘッダ情報
  • バリデーションやエスケープ処理を適切に設定

はじめに

👮💭 = セキュリティ関連の項目に登場する。

Node.js

  • サーバーサイドで動作するJavaScript
  • C++実装
  • ノンブロッキングIO
  • イベント駆動モデル
  • 単独でWebサーバーとして動作する
  • 細かい処理を大量に実行することに向いている
  • サーバーサイドとクライアントサイドでコードを共通化
  • 学習コストが低い
  • npmという膨大なライブラリを収めたアーカイブの存在
@mesummery
mesummery / API.md
Last active February 11, 2019 03:22
learned about aPI

LSUDs & SSKDs

LSUDs(Lerge Set of Unknown Developers)

  • 大多数向けの未知の外部開発者に向けたAPI
  • 誰にでも合うフリーサイズの服にちなんでone-size-fits-all APIとも言う(らしい)

SSKDs(Small Set of Known Developers)

  • 自社サービスのスマートフォンクライアント向けのAPIなど、APIを利用する開発者が限られている
  • APIとしての汎用性よりも、クライアント側でのUXを考える