How OTR (Off-the-Record) Messaging works

OTR stands for Off-the-Record Messaging, the OTR protocol was designed by cryptographers Ian Goldberg and Nikita Borisov and released on ...

Wayne

System Design 101 - Polling vs Long-Polling vs WebSockets vs Server-Sent Events

### Polling client 持續不斷的 send http request to server,server 持續不斷的回傳 response 給 client ex: 每秒都 call API 問 server 有沒有新的 notification ##...

Wayne

System Design 101 - Caching

Cache 就是把常用的資料先 copy 起來,有人需要的時候就直接把 copy 拿給他、節省時間的方式 ## Cache 的種類 ### 1. Appplication server cache request 打到 web server 的時後從 web ser...

Wayne

TCP 的三次握手四次揮手

## 三次握手: 連線 ![tcp-connection-made-three-way-handshake.png](https://waynechu.cc/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6Ik...

Wayne

Different between TCP and UDP

> 差別在於 TCP是雙向傳輸 UDP是單向.TCP傳送東西.會有封包數據.他可靠性高UDP可靠性低.傳送東西速度快。 在 TCP/ IP 協定家族中﹐傳送層主要有兩個協定﹕TCP 與 UDP。 TCP 提供的是一個連線導向(Connection Oriented)的可...

Wayne

How Digital Signature works

Key concepst: 1. private key 加密的訊息只可以用 public key 解密 2. public 加密的訊息只可以用 private key 解密 3. 不一樣的內容經過 hash function 後產生的 hash value 不一樣,一樣...

Wayne

DNS Challenge for HTTPs

簡而言之 你要在DNS加一筆record 每次更新他會要求你放不同的值 https://community.letsencrypt.org/t/i-am-confused-about-dns-challenge/18754

Wayne

explain https again

CA 憑證方發憑證,所謂的憑證就是包含 1. 公鑰 2. 用 CA 方的私鑰加密過的 Hash ## 具體步驟是: 1. client端發起Https request 2. Server端返回CA發的憑證 3. Client端收到憑證,並驗證憑證是否可信,如果可...

Wayne

rails csrf token

關於什麼是 CSRF: https://everyday1percent.blogspot.com/2017/12/csrf.html rails 主要就是這裡 ``` def csrf_meta_tags if protect_against_forgery? ...

Wayne

HTTP basic auth

HTTP Basic access authentication 簡單版: 加一個 Authorization 的 Header, 解釋版: https://zh.wikipedia.org/wiki/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%...

Wayne

安全性相關 - CSRF

CSRF 跨站請求偽造,也被稱為 one-click attack 或者 session riding,通常縮寫為 CSRF 或者 XSRF 假設 User A 已經登入了 X 站,因為 A 的瀏覽器有存了 X 站相關的登入紀錄,當 A 進入 Y 站時,Y 站可以偷拿 A...

Wayne

網路安全相關 - JWT

JSON Web Token https://jwt.io/ 現在很流行用 JWT 當作 HTTP basic auth 的 token 通常會長這樣 ``` header["Authorization"] = "Bearer <YOUR_JWT>" ``` 什麼...

Wayne

摘要算法和對稱加密算法

摘要算法不可逆,對稱加密可逆 所謂對稱加密就是用私鑰(也就是密碼)幫訊息加密,所以只要再用私鑰就能解密,例如 AES 算法 而摘要算法呢?就是沒有私鑰的概念,只要是一樣的字串加密出來的內容就會是一樣的,但是摘要算法會確保加密出來的字串無法(應該說:很難)被逆推回原本的值...

Wayne

reddit 上的 rails performance 總結

The Complete Guide to Rails Performance 這本書 https://www.railsspeed.com/ 的總結: * Measure. If you have a serious project a cost of NewRelic...

Wayne

比較 websocket 和其他技術,以及解釋action cable 的好文

大意 http stateless - polling - long polling - server send event websocket stateful - 2 ways - simultaneous communication - hard to loa...

Wayne

[網路原理重修系列][3] Socket, Process

應用層運行的程序叫做 process,每個 process 經過 socket 和傳輸層溝通,socket 其實就是提供給應用層跟傳輸層溝通的 API 如果 IP 是地址,port 就像房間號,主流的幾個 port 已經在操作系統中預先定義了例如 80 是 web appl...

Wayne

[網路原理重修系列][2] - OSI 模型 - 網路分層

第一層︰實體層(Physical Layer) 網卡之類的 第二層︰資料連結層(Data Link Layer) 傳送資料的層級,資料帶有 MAC address,由這層決定怎麼處理發送這些資料 第三層︰網路層(Network Layer) 讓資料在網路上傳遞的層級...

Wayne

[網路原理重修系列][1] - 重要的名詞定義

ISP (Internet service provider): 網路供應商,可以想成是提供線路的人,有高質國家層級、公司層級,也有 Local 層級的 Communication link Packet switch 分組交換器 http://acai-hsieh.b...

Wayne

Proxy server & Reverse proxy server

Proxy server 代理伺服器 http://linux.vbird.org/linux_server/0420squid.php 就是代理人的概念,把封包打到代理伺服器,讓代理伺服器去跟網路上的其他伺服器拿資料 資訊流動的方向是 自己的電腦 -> 代理伺服器 -...

Wayne