Web常見問題總結

SESSION 與 COOKIE的區別是什麼,請從協議,產生的原因與作用說明?

1、http無狀態協議,不能區分用戶是否是從同一個網站上來的,同一個用戶請求不同的頁面不能看做是同一個用戶。
2、SESSION存儲在服務器端,COOKIE保存在客戶端。Session比較安全,cookie用某些手段可以修改,不安全。Session依賴於cookie進行傳遞。
禁用cookie後,session不能正常使用。Session的缺點:保存在服務器端,每次讀取都從服務器進行讀取,對服務器有資源消耗。Session保存在服務器端的文件或數據庫中,默認保存在文件中,文件路徑由php配置文件的session.save_path指定。Session文件是公有的。

不使用cookie向客戶端發送一個cookie.

理解:session_start()開啓時,生成一個常量 SID,當COOKIE開啓時,這個常量爲空,當COOKIE關閉時,這個常量中存儲了PHPSESSID的值。通過在URL後加一個SID參數來傳遞SESSIONID的值,從而使客戶端頁面可以使用SESSION裏面的值。 當客戶端開啓COOKIE和服務器端開啓SESSION時。 瀏覽器第一次請求,服務器會向瀏覽器端發送一個COOKIE裏面存儲SESSIONID. 當瀏覽器第二次請求時,會把已存在的COOKIE一起提交到服務器端。

簡述Cookie的設置及獲取過程

設置COOKIE的值:
Setcookie(名稱,值,保存時間,有效域);
獲取值:$_COOKIE[‘名稱’];

HTTP 狀態中302、403、 500、200、404、502代碼含義?

一二三四五原則: 一. 消息系列 二. 成功系列 三. 重定向系列 四. 請求錯誤系列 五. 服務器端錯誤系列 302:臨時轉移成功,請求的內容已轉移到新位置 403:禁止訪問 500:服務器內部錯誤 401代表未授權。 200是請求成功,404是文件未找到,502是服務器內部錯誤。

請描述出兩點以上XHTML和HTML最顯著的區別

(1)XHTML必須強制指定文檔類型DocType,HTML不需要
(2)XHTML所有標籤必須閉合,HTML比較隨意

HTTP協議中GET、POST和HEAD的區別?

HEAD: 只請求頁面的首部。
GET: 請求指定的頁面信息,並返回實體主體。
POST: 請求服務器接受所指定的文檔作爲對所標識的URI的新的從屬實體。
(1)HTTP 定義了與服務器交互的不同方法,最基本的方法是 GET 和 POST。事實上 GET 適用於多數請求,而保留 POST 僅用於更新站點。
(2)在FORM提交的時候,如果不指定Method,則默認爲GET請 求,Form中提交的數據將會附加在url之後,以?分開與url分開。字母數字字符原樣發送,但空格轉換爲“+“號,其它符號轉換爲%XX,其中XX爲 該符號以16進製表示的ASCII(或ISO Latin-1)值。GET請求請提交的數據放置在HTTP請求協議頭中,而POST提交的數據則放在實體數據中;
GET方式提交的數據最多只能有1024字節,而POST則沒有此限制。
(3)GET 這個是瀏覽器用語向服務器請求最常用的方法。POST這個方法也是用來傳送數據的,但是與GET不同的是,使用POST的時候,數據不是附在URI後面傳遞的,而是要做爲獨立的行來傳遞,此時還必須要發送一個Content_length標題,以標明數據長度,隨後一個空白行,然後就是實際傳送的數據。網頁的表單通常是用POST來傳送的。

表單中 get與post提交方法的區別?

1. get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
  2. 對於get方式,服務器端用Request.QueryString獲取變量的值,對於post方式,服務器端用Request.Form獲取提交的數據。
  3. get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認爲不受限制。但理論上,IIS4中最大量爲80KB,IIS5中爲100KB。
get安全性非常低,post安全性較高。

瀏覽器IE和非IE瀏覽器的劃分,區別是什麼?

IE瀏覽器指的是使用IE內核的瀏覽器,對一些W3C標準的網頁代碼的支持不是很好。
非IE瀏覽器指的是沒有使用IE內核的瀏覽器,對W3C標準的網頁代碼有很好的支持。

web應用中,數據庫的讀取頻率遠高於寫入頻率, 如何優化MySQL而應對此種情景?

使用memcache緩存技術,將動態數據緩存到文件,訪問動態頁面時直接調用緩存文件,而不必重新訪問數據庫,這樣就減少了查詢數據庫的次數。
如果網站的訪問量很大,可以把數據庫讀寫服務器分開,使用多態服務器去處理數據庫查 詢,使用較少的服務器去處理數據庫的寫入和修改。

如果是一個Web頻繁訪問的查詢,上題的查詢如何優化?
使用memcache緩存技術,在一定時間內將動態內容緩存到文件中,訪問動態頁面時,世界調用緩存文件而不必重新查詢數據庫。

請舉例說明在你的開發過程中用什麼方法來加快頁面的加載速度

要用到服務器資源時纔打開,及時關閉服務器資源,數據庫添加索引,頁面可生成靜態,圖片等大文件單獨服務器。使用代碼優化工具。

描述一下大流量高併發量網站的解決方案

1、確認服務器硬件是否足夠支持當前的流量。
2、使用memcache緩存技術,將動態數據緩存到內存中,動態網頁直接調用這些文件,而不必在訪問數據庫。
3、禁止外部的盜鏈。
4、外部網站的圖片或者文件盜鏈往往會帶來大量的負載壓力,因此應該嚴格限制外部對自身圖片或者文件盜鏈,目前可以簡單的通過refer來控制盜鏈,apache自己就可以通過配置來禁止盜鏈。
5、控制大文件的下載。
大文件的下載會佔用很大的流量,對於非SCSI硬盤來說會消耗,使得網站響應能力下降。
6、使用不同的主機分流主要流量
7、使用流量統計軟件。
在網站上安裝一個流量統計軟件,可以即時知道哪些地方耗費了大量流量,哪些頁面需要再進行優化。
8、分庫分表。
9、Sphinx全文索引引擎。

對於大流量的網站,您採用什麼樣的方法來解決訪問量問題?

優化程序,優化數據庫,如果程序和數據庫已經最優化,使用以下解決方法:
1、確定當前服務器設備是否滿足流量需求。
2、使用Memcache緩存技術,把動態內容緩存到文件中,動態網頁直接調用這些文件,而不必再訪問數據庫。
3、禁止外部盜鏈,圖片和文件外部盜鏈會給服務器帶來大量的負載壓力,可以通過refer來禁止外部盜鏈,或者使用apache來配置禁止盜鏈。
4、控制大文件的下載,大文件的下載對於非SCSI硬盤來說會佔用大量的資源,導致服務器的響應能力下降。
5、使用不同的主機分流主要流量,使服務器均衡負載。
6、使用流量統計軟件統計分析網站流量,可以知道哪些地方耗費了大量的流量,哪些頁面需要再進行優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章