## 端口與socket
###端口是什么
|端口是內存中的某一塊地址
服務器比作房子,端口就是通向不同房間(服務)的門
**端口解決了網絡協議之間的溝通**
###什么是socket
http端口80,如何區分不同的客戶端
**socket = 服務端端口 + 服務端ip + 客戶端端口 + 客戶端ip**
##為什么要了解http協議
數據抓包
網絡爬蟲
http服務器
php框架
rest api
http1.0 1.1 2.0?
http請求流程?
#Http請求在網絡模型中的流程
##用戶訪問URL流程:
URL與URI(http、mailto、tel) 7層:瀏覽器查詢dns服務器,獲取域名對應的ip地址 7層:瀏覽器生成http請求信息交給tcp協議發送(SPDY6層SSL5層) 4層:tcp協議經過三次握手和web服務器建立連接,開始發送tcp報文 3層:ip層封裝ip報文(源ip目的ip)送往ip路由中轉 2、1層: 中間再經過鏈路層封裝報文、物理層模數轉換 接收端反序:web服務器讀取tcp組裝的http報文,生成請求結果 接收端作為發送端:web服務器以同樣的方式組裝報文傳送給用戶瀏覽器(展現)
入 域名 建立 負載 程序 緩存 數據 數據 頁面 結果 頁面 地址 解析 連接 分發 執行 讀取 獲取 返回 組合 返回 執行
#瀏覽器渲染流程
1. 瀏覽器下載和渲染的順序從上到下,下載和渲染同時進行的。
2. 在渲染到頁面的某一部分時,其上面的所有部分都已經下載完成,但并不是所有相
關聯的元素都已經下載完。
3. 如果遇到語義解釋性的標簽嵌入文件(JS腳本,CSS樣式),那么瀏覽器會啟用單
獨連接進行下載。
4. 下載后馬上進行解析,解析過程中,停止頁面所有往下元素的下載。
5. 樣式表在下載完成后,將和以前下載的所有樣式表一起進行解析,解析完成后,將
對此前所有元素(含以前已經渲染的)重新進行渲染。
6. JS、CSS中如有重定義,后定義函數將覆蓋前定義函數
#LNMP架構
##php執行方式對比
1. mod_php穩定性不好PHP出錯server進程也受影響
2. php-fpm 在php出錯時啟動新的php進程
3. php-fpm可以webserver分離 ,能同時運行多份 甚至多php版本
4. php-fpm效率甚至比mod_php更高
php-fpm缺點:不利于調試,需單獨監控
#Nginx配置
基本配置 gzip壓縮 緩存 跨域 反向代理
#http瓶頸與發展
##性能瓶頸
1、一次連接只能發送一p請求 2、請求只能從客戶端開始f客戶端只可接收m能推送d輪詢浪費資源e
3、請求/響應–部未壓縮
4、重復發送冗長的–部浪費資源
##性能瓶頸解決
AJAX:不重復下載頁面
Comet:服務器掛起請求做長連接f模擬實時推送消息
SPDY:會話層實現ftJW多路復用、請求優先級、壓縮–部、服務器u 動推送f但m能解決多域名及其他OtTS本身等問題
WebSocket:推送、長連接減少通訊量
WebDAV:服務器文件管理
https = http + 加密 + 認證 + 完整性保護

- SWOOLE及php網絡編程
- LNMP架構與Socket,http協議
- 如何高效學習
- 開發工具箱
- 編寫高效的js
- js閉包編寫全功能的購物車
- JSON和JSONP
- 多級分類的開發與應用
- 設計安全的登錄注冊流程
- 前端性能優化
- 前端架構優化
- 使用第三方云服務加速產品開發
- 移動互聯網之API開發
- php分層
- 全文檢索的實踐與部署
- webIM的原理及前后端實現
- 如何配置高效的數據庫以及MySQL的代碼及插件開發
- NoSql.隊列,任務隊列
- 構建本機緩存,構建分布式緩存池
- 數據庫分庫分表的設計
- Nginx原理及模塊開發初步
- 無限擴充的數據庫架構
- php構建分庫分表分布式數據庫連接池
- 靜態文件上傳、分布式存儲與分發
- MySQL Cluster,Proxy分析與實踐
- 架構解密