template: '<div>{{member?.name}}</div>'
?.演算子は、オブジェクトmemberが空であるかどうかを確認し、空でない場合だけnameプロパティにアクセスする様になる。
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2017/08/04
- メディア: 大型本
- この商品を含むブログを見る
template: '<div>{{member?.name}}</div>'
?.演算子は、オブジェクトmemberが空であるかどうかを確認し、空でない場合だけnameプロパティにアクセスする様になる。
【利用できない演算子がある】
副作用を伴う演算子は、{{...}}式では禁止されている。
具体的には、以下の様なものです。
・代入演算子(=、+=、-=など)
・new演算子
・";"や","など連結を表す演算子
・インクリメント/デクリメント演算子(++、--)
・ビット演算子(|、&)
逆に、{{...}}でのみ利用できるテンプレート演算子もある。
具体的には、存在演算子「?.」と、パイプ演算子「|」である。
【グローバル名前空間のオブジェクトを参照できない】
window、document、console、Mathのようなグローバル名前空間上のオブジェクトに{{...}}式からアクセスすることはできない。
そのため、{{AppComponent.name}}のような表現をしてはならない。
【{{...}}式を利用する上でのガイドライン】
・式が副作用が伴わないこと(=他の値に影響がでないこと)
・冪等であること
・短時間で実行できること
・シンプルであること
設定ファイル | 概要 |
---|---|
package.json | Angular、またはアプリ本体で利用するライブラリ情報などを定義 |
tsconfig.json | TypeScriptコンパイラーの動作を定義 |
systemjs.config.js | モジュールローダー(SystemJS)の設定情報 |
【概要】
・キャプチャフィルタ:キャプチャするパケット自体を絞り込む機能
・ディスプレイフィルタ:絞り込んだパケットの表示を絞り込む機能
キャプチャフィルタとディスプレイフィルタでは構文が異なるため、注意が必要
【キャプチャフィルタ】
tcpdumpと同じpcap-filterの構文で設定可能
構文をすべて入力し終えたとき、ボックスが緑色であれば正しい構文、赤色であれば構文エラー
not(!)やand($$)やor(||)も指定可能
(設定方法)
・"Wiresharkへようこそ”画面にあるキャプチャフィルタのボックスに入力する方法 ・[キャプチャインタフェース] - [キャプチャフィルタ]から選択する方法
(文法)
Proto Dir Type ID
・Proto:プロトコルを指定(ip, tcp, udp, arp, ether, 省略した場合はTypeで指定されたフィールドを持つすべてのプロトコルが指定)
・Dir:通信方向を指定(ex. src, dst, 省略した場合はsrc or dst)
・Type:IDの種類を指定(ex. host, port, 省略した場合はhost)
・id:Typeで指定した属性に呼応する値
(基本的なキャプチャフィルタ指定例)
キャプチャするパケット | キャプチャフィルタ |
---|---|
TCPパケット | tcp |
送信元や送信先のIPアドレスが192.0.0.1 | ip host 192.0.0.1 |
送信先のポート番号が80/tcp | tcp dst port 80 |
送信先のポート番号が80/tcpを除く | not tcp dst port 80 |
送信先のポート番号が80/tcpまたは443/tcp | tcp dst port 80 or tcp dst port 443 |
(詳細リンク先)
Manpage of PCAP-FILTER
CaptureFilters - The Wireshark Wiki
【ディスプレイフィルタ】
pcap-filterとはまったく異なる構文で設定
構文をすべて入力し終えたとき、ボックスが緑色であれば正しい構文、赤色であれば構文エラー
not(!)やand($$)やor(||)も指定可能
(設定方法)
・Wiresharkのメイン画面にあるフィルタツールバーのボックス ・[分析] - [表示フィルタ]から選択する方法
(文法)
fieldname relation value
・fieldname:プロトコルを指定(ex. eth, arp, tcp, udp, http)[※1]
・releation:比較演算子を設定(ex. eq[==], gt[>], lt[<], ge[>=], le[<=])
・value:文字列や数値を指定、文字列の場合はダブルクォートで挟む必要有
※1 各フィールドにある下位のフィールドを指定する場合は、フィールド名.下位のフィールド名のように指定する。
(基本的なディスプレイフィルタ指定例)
表示するパケット | ディスプレイフィルタ |
---|---|
TCPパケット | tcp |
送信元や送信先のIPアドレスが192.0.0.1 | ip.addr == 192.0.0.1 |
送信先のポート番号が80/tcp | tcp.dstport == 80 |
送信先のポート番号が80/tcpを除く | not tcp.dstport == 80 |
送信先のポート番号が80/tcpまたは443/tcp | tcp.dstport == 80 or tcp.dstport == 443 |
(詳細リンク先)
6.4. Building display filter expressions
パケットキャプチャ入門 第4版― LANアナライザWireshark活用術―
パケットキャプチャの教科書 (Informatics&IDEA)
プロキシ配下でeclipseからマーケットプレイスなどでモジュールを引っ張ってこようとしても407エラーなどになってしまう。
他にも、gradleで以下の様なエラーが発生してしまう。(※1)
Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-6.3-bin.zip'. Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 authenticationrequired"
※1 407はプロキシ認証のエラーであるが、実はそこまで届いていなかった。
Java8以降でトンネリング経由のbasic認証が止められてしまっているため
jdk.http.auth.tunneling.disabledSchemes=Basic
eclipseの内蔵JDKを用いている場合も同様である。
なお、Java11以降は、$JAVA_HOME/conf/net.propertiesに移動している。
eclipseのネットワーク設定が怪しい場合、外部との通信を別ソフトに任せる。
構築されているプロキシ環境など、通常net.propertiesを設定変更すればうまくいきそうなのに駄目な環境が存在した。
その際、Windows上のプロキシを経由すると何故かうまくいく場合があった。
(技術的な裏付けは行えず仕舞いではあるが・・・)
ネットワーク接続のところでアクティブ・プロバイダー(※2)のとこなど設定方法が分からないまま適当に設定しているのであれば、見直すこと。また、同じ設定を一度違う値に書き換えて、再度元の設定に書き換えるとうまくいくケースがあった。(※3)
但し、上記で記載したプロキシソフトがその様な設定を入れる場合もある
(ここの挙動差異がいまいち何がトリガーになっているのかきちんと理解できていない…)
※2 アクティブ・プロバイダーの意味
※3 長年プロキシ配下で利用しているが、eclipseのネットワークの設定は怪しい動きすること多い
兵庫県電子入札共同運営システム : HTTPS トンネリングの Basic 認証無効化への対処
https://www.nyusatsu.e-hyogo.jp/hyogo/files/https_tunneling.pdf
[事象]
プロキシ環境下でyumコマンドなどを実行する際に、環境変数にプロキシの設定などを行っているのに参照が行われずにエラーになってしまう。
[原因]
sudoコマンドを利用しているのにオプションをつけていなかったため。
[対応方法]
-Eコマンドを付与して実行する。
[参考リンク]
mikio.github.io
qiita.com