Java活用生活

ログイン

オンライン状況

オンラインユーザー1人
ログインユーザー0人
登録ユーザー2人

カウンタ

COUNTER335483

日誌

つれづれ備忘録 >> 記事詳細
2022/02/22

オリジン間リソース共有 (CORS制御)

固定リンク | by:aramaki
 オリジン間リソース共有 (CORS制御) 
---------------------------------------------------------
JSON なら JSONP を使う、異なるオリジンの利用について
抜粋)


ブラウザ上のJSエンジンからAPIサーバを叩く時に避けて通れないのが、Same-Origin Policy(同一生成元ポリシー)による
CORS (Cross-Origin Resource Sharing)制限です。CORS制御で異なるオリジンでもリソースを共有する


--------------------------------------------------------------------------
ヘッダ                                 | 値
---------------------------------------------------------------------------
Access-Control-Allow-Origin | アクセスを許可するOriginのURL。"*"で指定なし。
---------------------------------------------------------------------------
Access-Control-Allow-Methods | 使用可能なメソッド
---------------------------------------------------------------------------
Access-Control-Allow-Headers | 使用可能なリクエストヘッダ
---------------------------------------------------------------------------
Access-Control-Max-Age | preflightの結果をキャッシュしても良い時間(秒)
---------------------------------------------------------------------------

サンプル
-----------------------------
@Componentpublic class CorsFilter extends OncePerRequestFilter{ 
 private static final Logger log = LoggerFactory.getLogger(CorsFilter.class); 
 // spring boot for java におけるフィルタ処理
 @Override 
 protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
  response.setHeader("Access-Control-Allow-Origin", "*");//すべてのドメインからアクセス可能
  // ブラウザ上のJSエンジンは、APIサーバ(別ドメイン)にリクエストを投げる前にOPTIONSメソッドによるアクセスを行います。
if ("OPTIONS".equals(request.getMethod())) {
response.setHeader("Access-Control-Allow-Methods", request.getHeader("Access-Control-Request-Method"));
response.setHeader("Access-Control-Max-Age", "3600");
         response.setHeader("Access-Control-Allow-Headers", "Content-Type");
         response.setStatus(HttpServletResponse.SC_OK);
}else {
filterChain.doFilter(request, response);
}
}
}
09:36 | 投票する | 投票数(0) | コメント(0)

リンクリスト

学習参考サイトへのリンク

2進数で情報を扱うコンピュータ

2進数で情報を扱うコンピュータ

  コンピュータの情報は、すべて2進数で表現されます。すべての数値を0と1で処理するための表現方法が2進数です。プログラムの数値や、文字列はもちろんのこと、画像や音声、動画などのあらゆる情報を2進数で表現します。2進数を用いることにより、コンピュータの内部では、電圧の高低だけで様々な情報を表現します。   コンピュータの扱う情報の最小単位である「ビット(bit)はbinary digit の略であり、2進数1桁分を表します。   コンピュータでは、2進数の情報(2進数4桁分をまとめた16進数)でしか情報や命令を認識できない機械なのです。これからはじめるプログラミングをする上で、このことは、しっかり意識しておかないと、思わぬ落とし穴にはまるかもしれません。

2進数での情報表示と10進数への変換

  2進数での数値表現について、ある程度、プログラマーは知っておく必要があります。プログラミングにおいて、必ずしも毎回、2進数を意識しなければならないことはありませんが、それを意識していないと、思わぬ不具合を生じてしまう場合があります。   2進数についての数値表現の方法や、10進数への変換等の説明をしたこちらのサイトをご覧になり、確認してください。


スタディーノート(お知らせ版)

【CPUとメモリーの関係】

「ノイマン型コンピュータ」をご存知でしょうか?実は、現在のコンピュータのほとんどが、このノイマン型を採用しています。ノイマン型コンピュータは、プログラムを記憶装置(ディスクやメイン・メモリー)に格納し、これを順番にCPU(中央演算処理装置)が読みコンで実行するコンピュータのことです。「ストアド・プログラム方式」(プログラム内蔵方式)とも呼ばれています。
  ノイマン型以前のコンピュータは、真空管の配列や配線などを変更することで、特定の計算処理を実行できました。異なる計算処理を行うごとに配線をやり直す必要があったため、汎用性に乏しいをいう欠点がありました。
  ノイマン型コンピュータの登場により、プログラムを自在に変化させることで、配線の変更などの面倒な手間なしに様々な計算処理が可能となりました。プログラミングという作業が誕生した瞬間といっても過言ではありません。
  ノイマン型コンピュータの中核になるメイン・メモリー(以下メモリー)は、CPUが働くための場所を一時的に与えてくれます。「0」か「1」かという情報を大量に保持できる半導体が一般に使われます。
  基本的には、1バイトを読み書きの単位として、1バイトごとにアドレス(番地)と呼ぶ番地が振り分けられています。
  メモリー内の情報は、書き換えたり、電源を切ったりしない限り、保存されます。
  一方CPUは、メモリー内の情報を使って様々な計算処理を実行し、結果を出力します。今日のCPUの中身は、きわめて複雑ですが、その基本的な役割は、ノイマン型コンピュータ登場当時から変わっていません。
  CPUが動作するときの流れは、①命令をメモリーから読み取る、②読み取った命令を解釈する、③解釈した動作を実行する、④処理結果をメモリーに書き出す、というステップを繰返します。
  CPUとメモリーは、様々な信号線で接続されています。たとえば、アドレス・バス(CPU とメモリー間で、読み書きしたいメモリーのアドレスをやり取りするための信号線です)やデータ・バス(CPUとメモリとの間で、データそのものをやり取りするための信号線です)、読み書きのタイミングなどを制御する信号線などです。CPUが読み書きしたいメモリーのアドレスをアドレス・バスに出力し、制御用の信号線を使って読み取り/書き出しを支持することで、データ・バスを通じてデータをやり取りしながら、プログラムを実行します。
(日経ソフトウェア2010年6月号より抜粋)


Copyright © Java活用生活 All Rights Reserved .