2017年01月04日00:20:21
- 1Byte = 8 Bit(s) ;1Bit是一位 0 / 1 sizeof(int) = 4 * 8 Bit = 2^32 長度
HTTP協議 TCPIP協議
HTTP: 四個步驟: 客戶端服務器建立連接; 發出請求(傳輸數據URL、協議版本號);服務器響應信息;斷開連接;
TCP/IP: 三次握手:建立連接時客戶端向服務器發送同步序列編號,進入請求狀態;服務器收到同步序列編號包,確認,向客戶端發送ACK和SYN包,進入接收狀態;客戶端收到ACK包,想服務器發送ACK,連接成功。
mysql優化,并發
-
ajax原理
- JavaScript利用XMLHttpRequest 在不阻塞用戶操作的前提下向服務器發送異步請求。
empty 、 isset
empty : NULL ,false, '', "", 0, 0.00 , '0', [] ,$var
isset : 檢查變量是否已經設置值并且值不是NULL
進程與線程區別
- 進程:執行的程序,一個可以調度操作系統資源的程序,進程可以調度線程。
- 進程相互獨立,同一個進程內的線程資源共享。不同進程相互獨立。
- 線程死鎖:同步導致,
- 線程同步:
- Muetex 互斥對象: 同時只能被一個線程占用,其他線程等待Muetex釋放才可執行。
- 事件 Event :通過設置不同的狀態調度線程。
- 臨界區
CGI 、FASTCGI 、php-cgi、php-fpm
- CGI :
Common Gateway Interface
, 是HTTP與服務器程序交互的接口,CGI程序運行在HTTP服務器上,將收到的請求數據處理,有HTTP服務器收集輸出,返回給客戶端。 - FASTCGI:
Fast Common Gateway Inferface
是CGI的增強版本。為了減少CGI程序與Web服務器的互動開銷,提高并發處理;不用每次都forkCGI進程。 - php-fpm: php5.3.3版本之后加入到php里的FastCGI管理器。
- php-cgi: php 自帶的CGI管理器。
require 、 require_once 、 include:
- require 和 include 的功能幾乎一樣:除了失敗時候的表現: require會報錯程序終止:
E_COMPLIER_ERROR
; 但include 只發出警告:E_WARNING
. - require_once: 如果文件已被包含的時候就不在包含了,此時include 和 require會導致重定義。
SESSION與 COOKIE
- Cookie:存在于客戶端里的由服務器響應來的。請求服務器的時候會帶上Cookie。不可跨域;
- Session:存在于服務器中的,與客戶端對應的。為了提高響應速度,web服務器會把Session存在內存里,超時時間。
各種常見排序算法
- 冒泡:相鄰元素比較,將大元素往后扔,每每一次排序選出一個最大的待排元素
- 選擇:每次選擇一個最小或最大的元素,跟現有比較元素交換位置。
- 快排:選參考元素將待排元素分兩組,遞歸,直至分完。
- 歸并:拆分,合并,合并的時候排序。
- 插入:在已排好序的元素中選擇合適的位置放置新元素。
PHP編碼轉換
PHP可以從代碼里修改php.ini的函數:
default_time_zone_set()
ini_restore() //恢復ini配置
ini_set // 為某些配置項設置動態值
set_time_limit //設置腳本最長執行時間
# ini_set 常見配置
ini_set(’memory_limit’, ‘16M‘); // 指定腳本運行的時候所允許分配的最大內存
ini_set('error_reporting' , E_ALL & ~E_NOTICE); //顯示執行錯誤的級別
ini_set('display_errors', ‘1’) //是否打印錯誤到屏幕
ini_set('error_log' , '/var/log/xx.log') //記錄腳本執行錯誤的日志存儲
PHP什么時候區分大小寫
-
常用設計模式的PHP實現
- 單例
- 工廠
- 命令
-
mysql數據庫有哪些引擎,為什么你的產品選用這個引擎?
- INNODB
- ISAM
- MYSQL ISAM
-
c語言中 int number=1;和PHP中$number=1;在各個方面有什么區別
- c: 分配4字節給number在內存中的存儲位置,這塊內存地址指向的值為1.
- 由PHP解釋器分配內存空間,實例化一個zval結構體,1存儲在zval結構體中的zvalue聯合體成員中。
Zend虛擬機執行PHP代碼的過程:
描述1:
- Scanning (Lexing):將PHP代碼轉換為語言片段(Tokens)
- Parsing:將Tokens轉換成簡單而有意義的表達式
- Compilation:將表達式編譯成Opocdes
- Execution:順次執行Opcodes,每次一條,從而實現PHP腳本的功能。
描述2:
- 首先,Zend Engine(Zend引擎),調用詞法分析器(Lex生成的,源文件在 Zend/zend_language_sanner.l), 將我們要執行的PHP源文件,去掉空格 ,注釋,分割成一個一個的token。
- 然后,Zend引擎會將得到的token forward給語法分析器(yacc生成, 源文件在 Zend/zend_language_parser.y),生成一個一個的op code,opcode一般會以op array的形式存在,它是PHP執行的中間語言。
- 最后,Zend引擎調用zend_executor來執行op array,輸出結果。
post和get
索引是不是越多越好
- insert、update、delete的時候就要維護索引。
- 存儲空間