首先,這不是比較貼,語言和框架能比較嗎?
其次,我也沒有全部用過
本文唯一的目的在於提醒自己(還有正在瀏覽的你)真正所需要關注的究竟是什麼
PHP
PHP是simple but dirty的語言,simple是指的語言,simple是指學習曲線低,主要是因為有大量的基於php的傻瓜式應用,比如wordpress,discuz之類的,如果你只有一般的博客或論壇需求的話,只要善用google,你不用寫哪怕一行代碼。但是,php本身simple嗎?個人認為不是的,原因就不一一列舉了。至於dirty,我更覺得說的是他的設計,語言設計比較糟糕,看著常常的下劃線連接的函數名就略窺一二,除了有豐富經驗的php程式設計師,很難有人能寫出沒有嚴重漏洞的程式碼。
php開發框架建議:一等:Yii,Yaf,Symfony;二等:Zend,Cake,CI
Django
Django是基於Python的web開發框架,和Rails十分的相似,前幾年,他比Rails好的地方在於Python比Ruby更“可靠”,所謂可靠,就是更多人用,文檔更多,更能通過詢問找到答案,但隨著近幾年Ruby的逐漸興起(大部分靠Rails的帶動) ,越來越多的網站使用Rails。單論語言設計,Python不見得比Ruby簡潔,一致性也略遜於Ruby,可以說Python唯一的優勢就是有很多serious scientists都在使用它,在科學計算領域佔據大半江山,而Ruby是日本人造的(Ruby借鑒了Python)。倘若Ruby是與Python同時代的歐美國家誕生的語言,相信現在已經沒Python什麼事了。
Rails
Rails是個驚人的web框架,幾乎現在所有的主流web框架都能看到Rails的影子,Rails把Ruby的特性用到了極限。 Rails能應用於一切大中小型應用,超大規模應用不是單靠任一腳本語言就能勝任的。 Rails經過多年的發展已經洗盡鉛華,現在正處於「一枝獨秀」的狀態,可以說沒有一款框架的綜合能力(易用性,簡介性,效率,學習曲線等)能超越Rails,NodeJS不行, Django不行,其他「小眾」的語言更不行,相反,Rails正處於飛速發展狀態,以後超大規模應用的成功案例也會逐一出現。
NodeJS
NodeJS是一款很有前景的Web框架,可惜就是晚生了幾年,不然現在也是能和Rails一較高下,相比php,Django和Rails,NodeJS的開源專案相對較少,大型的成功案例也略少,但其設計和性能也相當簡潔和高效。相信不久的將來也會大放異彩。
ASP,JSP等
複雜,臃腫,企業級,靠人數堆積的公司,國企,銀行,電商,創業公司用這些的話就是自殺,重要部門不用這些的話也是自殺(招的人不行,只能用售後啦)。
其他
其他語言就是各有各的用途,只不過業務恰好用到該語言罷了,嚴格的說不能算是專門搞網絡開發的,比如Clojure,Io等。這裡暫時不討論了。
總結:
如果讓我再次選擇學習路線(只有語言,不包括server,db方面)的話,我會
了解一下php,不用深入
了解一下Yii,一款php的MVC框架,不必深入
基本學習Ruby
基本學習Rails
徹底學習Ruby
徹底學習Rails
了解Pyt ,Django,Lisp,Clojure,NodeJSo
了解Pyt------ -----------分割線------------------------------
這篇文章對rails和nodejs的適用場景描述的非常到位。 rails和nodejs是最值得關注的兩種後台技術。
聲明:這篇文章絕不是一篇討論 NodeJS 和 Ruby on Rails 孰優孰略的檄文。它所描述的只是我們做決策過程中的一些思考、決策背後的原因。兩種框架都非常優秀,都出色的完成了它們的設計初衷,這也是為什麼我們部分的模組仍然運行在NodeJS上的原因。
我是NodeJs的大粉絲,認為這是一項讓人非常興奮的技術,相信它會變的越來越流行。我對這項技術非常的欣賞——儘管我們最近把Targeter App從NodeJS遷移到了Ruby on Rails。
我們當時使用NodeJS來發展它的原因很簡單。我有一個程式包,能很快的將我們的應用弄上線(我們花了54小時做這個事情),相比起Ruby,我更 常使用的是JavaScript。因為我們的技術架構牽涉到MongoDB,我的這些專長只有在NodeJS環境裡才會有意義。然而,隨著應用程式規模的增 長,我意識到,選擇NodeJS來實現這個應用程式是個錯誤的選擇。下面讓我來概述一下其中的原因。
NodeJS很適合做那些有大量短生命期請求的應用。對於傳統的CRUD應用,它也很好,但不是非常的理想。在 PHP,Ruby,Python語言裡都有很成熟、優化的很好的框架來處理這個應用。 NodeJS裡的所有東西都非同步執行的理念對於CRUD應用來說沒有 任何效果。其它語言裡的流行的框架能提供非常好的快取技術,你所有的需求都能滿足,包括非同步執行。
NodeJS是一種非常年輕的技術框架,它的周邊程式庫都不是很成熟。我說這些並沒有任何對那些程式碼捐贈者冒犯 的意思,他們很優秀,開發出來很多優秀的程式庫。然而,大部分的程式庫需要改進,而NodeJS這種快速成長的環境意味著每一版升級中都帶有大量的變化; 當你使用一種前沿技術時,你十分有必要盡快的緊跟最新的版本。這給創業型的企業帶來了很多的麻煩。
另一個原因是關於測驗。 NodeJS裡的測試框架還不錯,但跟Django或RoR平台上的比較還是差一些。對於一個每天都有大量的程式碼提交、並且在一兩天內就要發布的應用程式來說,程式不能出問題是至關重要的,否則你為此辛苦的努力變得得不償失。沒有人願意花一天的時間改一些弱智的bug。
最後一點,我們需要的是一種可以緩存一切的東西,並且要盡快的實現。儘管我們的應用程式正在成長,每秒鐘有上萬次的hits,但絕不會出現很大量的存取請求;這不是一個聊天程式!主程式最多時也就達到1000RPS,這樣的負載對於Ruby on Rails和Nginx來說算不了什麼。
如果你現在還在讀這篇文章,那你已經看到了我所有要說的了,你也許非常堅持的想知道我們的應用什麼地方還在使用NodeJS。是這樣的,我們的應用 由兩個部分組成。一是介面,使用者看到的這部分,二是負責報表管理的部分,以及做日誌的功能。後者是NodeJS的一個最佳使用場景,存在有大量的短週期的請 求。這部分的動作需要盡快的執行完成,甚至在我們的資料推送還沒完成之前。這很重要,當請求執行還未結束,瀏覽器繼續等待回應結束,這會影響使用者使用 體驗。 NodeJS的非同步特性救了我們。資料要麼被存入資料庫,要麼被處理掉,當請求一旦執行完成,瀏覽器就可以開始做它重要的事情了。

使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 1.持久性:即使服務器重啟,會話數據也能保持不變。 2.可擴展性:適用於分佈式系統,確保會話數據在多服務器間同步。 3.安全性:數據庫提供加密存儲,保護敏感信息。

在PHP中實現自定義會話處理可以通過實現SessionHandlerInterface接口來完成。具體步驟包括:1)創建實現SessionHandlerInterface的類,如CustomSessionHandler;2)重寫接口中的方法(如open,close,read,write,destroy,gc)來定義會話數據的生命週期和存儲方式;3)在PHP腳本中註冊自定義會話處理器並啟動會話。這樣可以將數據存儲在MySQL、Redis等介質中,提升性能、安全性和可擴展性。

SessionID是網絡應用程序中用來跟踪用戶會話狀態的機制。 1.它是一個隨機生成的字符串,用於在用戶與服務器之間的多次交互中保持用戶的身份信息。 2.服務器生成並通過cookie或URL參數發送給客戶端,幫助在用戶的多次請求中識別和關聯這些請求。 3.生成通常使用隨機算法保證唯一性和不可預測性。 4.在實際開發中,可以使用內存數據庫如Redis來存儲session數據,提升性能和安全性。

在無狀態環境如API中管理會話可以通過使用JWT或cookies來實現。 1.JWT適合無狀態和可擴展性,但大數據時體積大。 2.Cookies更傳統且易實現,但需謹慎配置以確保安全性。

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)