原创 Sprite 拼合圖

Sprite:原意是精靈,也是著名飲料“雪碧”的英文名。 在Web前端領域,Sprite圖是指一張擺放了很多icon的圖片,中文稱爲“拼合圖”,如下圖所示。 之所以要把很多icon拼成一張大圖,是爲了減少客戶端請求的次數,客戶端一次請求

原创 B/S和C/S理解

C/S: Client / Server,客戶端 - 服務器。 B/S: Browser / Server,瀏覽器 - 服務器。 這2種架構的區別在於客戶端這一側。實際上,你可以認爲:C/S是胖客戶端模式,B/S是瘦客戶端模式。 有多“瘦

原创 最精簡的C語言HTTP開源庫 -- tinyhttpd

這個庫的實現,其最大的作用是告訴我們:HTTP協議本質上是一個文本協議,解析對方發來的內容的過程,其實是在做字符串匹配。 關鍵詞:HTTP、多線程、多進程、CGI、 0.這個庫寫於1999年,那一年QQ纔剛出現,可以說是祖師爺級別的網絡庫

原创 什麼是撥測

這裏僅從互聯網服務的角度來理解。總結:撥測是一種網絡鏈路質量的測試手段。撥測,非常類似於爬蟲,更準確地講,非常類似於黑客控制“肉雞”發起DDos攻擊。這裏的“肉雞”,就是某個互聯網服務的客戶端,比如PC端、手機端。目的:探測各地區用戶到各

原创 Source Insight 4.0 統一字體大小

新版4.0的Source Insight做了很大的改變,安裝之後,各種類型的標識符字體大小不一,看着很難受。網上搜了一圈居然沒有找到設置統一字體大小的教程,看來一代神器SI越來越少人用了。。。閒話少說,Source Insight 4.0

原创 我們爲什麼用Redis?

1. 和內存一樣快的永久存儲:    共享內存、Redis,排除Memcache(非永久),排除MySQL(不夠快);2. 功能豐富強大、方便易用的數據操作接口,出問題可以迅速進行人工干預:    排除共享內存(接口太簡陋)。3. 將數據

原创 帶寬與流量的關係

帶寬的單位:bps流量的單位:b或B換算公式:流量 = 帶寬 * 時間

原创 日知錄

僅以本文,記錄工作中遇到的那些坑,要麼是Bug要麼是問題,以及,積累的工作思路:-------------------------------------------------------------------------------

原创 秒懂URI和URL區別

假設URL = "https://www.csdn.net/foo/bar/file?k1=v1&k2=v2",則:URI = "/foo/bar/file",URI Param = "k1=v1&k2=v2",Host = "www.c

原创 爲什麼Lua的字符串連接符是兩個圓點(..)

Python用的是+號,Lua用的是兩個圓點 ..很明顯,圓點在鍵盤上的位置更容易敲擊,+號還要按下shift鍵。

原创 什麼是長連接 | 短連接?

某些朋友對長、短連接的概念存在誤解,下面我們嘗試釐清這2個概念。1)一般情況下,Client成功連接到Server後,會發送1個或幾個請求,收到Server端1個或幾個應答;然後!就會非常識趣地馬上調用close()關閉連接了。這就叫短連

原创 最佳實踐之分庫分表

1.爲什麼分庫分表(Sharding)?   1)最重要的就是擴容,希望從1TB擴容到100TB;   2)提高性能。準確地說,是提高單表性能。因爲分完之後,單個庫或表的數據量就降下來了。代價是,以前的單表操作可能變成跨庫或跨表,所以要謹

原创 半小時快速上手Scala

本文總結Scala在語法上的新特性,以達到看得懂Scala程序的地步(Scala有些寫法確實是比較騷氣~)。    Scala的語法之所以顯得騷氣,是因爲它的某些關鍵字或者運算符我們不認識,看起來更接近人類語法,比較隨意不固定。    當

原创 最佳實踐之帶寬優化“三板斧”

目標:本文嘗試總結互聯網頂級應用在優化帶寬上的慣用手法。注意:這些手法看起來平平無奇,但是確實有效地爲公司和用戶節省了帶寬,是“簡單粗暴有效果”的最佳實踐。1. 圖片壓縮:特別是GIF動圖的壓縮,使用HEVC代替WebP;2. 視頻壓縮:

原创 UDP是否可以使用select/epoll?

【給出答案】1. UDP也可以使用select/epoll;2. 但是,通常沒有這個必要。Richard Stevens在不朽的經典《Unix網絡編程卷一》中已經說了:“大多數情況下,TCP服務器是併發的,UDP的服務器是迭代的。”說白了