###**Web**:
蜘蛛網,萬維網(www,world wide web)的簡稱,webpage網頁,website網站。
www是一個由超鏈接組成的系統,web客戶端即瀏覽器可以輸入URL(統一資源標識符)來訪問web服務器端的資源,然后通過TTTP(超文本傳輸協議)傳輸給客戶端。
**Internet** = web+服務。只是現在很多服務都通過瀏覽器來作為載體,所以現在經常混為一體。
常用的服務包括:E-mail(電子郵件);FTP,File Transfer Protocol(文件傳輸協議);Newsgroups(新聞組(討論組)通常使用NNTP協議);遠程登錄(Telnet);手機 (3GHZ)等。
現在的郵件和網盤都是直接通過瀏覽器訪問的了。
**組成**:服務器(Server)+瀏覽器(Browser)+通信協議
1. 服務器
1. 功能:存儲內容、數據庫訪問、監聽客戶端連接請求、響應瀏覽器等。
2. 服務器產品:Tomcat、IIS、Apache等。
3. 服務器語言(技術):PHP,JSP,ASP,Python等。
2. 客戶端,即瀏覽器
1. 功能:提交請求、解釋執行HTML、圖形化顯示HTML。
2. 瀏覽器產品:谷歌、火狐、IE等。
3. 瀏覽器語言(技術):HTML、CSS、JavaScript。
###**客戶端語言:**
1. HTML,HyperText Markup Language (超文本標記語言)“超文本”就是指頁面內可以包含圖片、鏈接,甚至音樂、程序等非文字元素。HTML不是一種編程語言,而是一種標記語言 (markup language)。
2. CSS,Cascading Style Sheets(層疊樣式表)W3C制定的編程語言。既然叫“樣式”表,那么它就是用于定義如何顯示 HTML 元素。CSS使得HTML寫成的頁面不那么單調,可以有各種顏色,大小等。
3. JavaScript,一種腳本語言,與Java語言沒有關系,可插入HTML頁面,使網頁具有動態/交互性。
###**服務器端語言**:
1. PHP:Symfony2,Zend。
2. Java:J2EE。
3. Python:Django。
4. Ruby:Ruby on Rails。
5. C#:ASP.NET。
###**靜態網頁** Static Webpage .htm、.html
可以包含文本、圖像、聲音、FLASH動畫、客戶端腳本和ActiveX控件及JAVA小程序等。
沒有后臺數據庫、不含程序和不可交互的網頁。
也可以出現各種動態的效果,如GIF格式的動畫、FLASH、滾動字幕等。
###**動態網頁 Dynamic Webpage 是以asp,jsp,php,aspx等結束**
通過數據庫和編程來使網站具有更多自動的和高級的功能。
靜態網頁,你一旦用HTML和CSS寫好,上傳到服務器空間,以后每個用戶訪問你的網址看到的網頁都是一樣的;動態網頁展示給每個用戶一般是不一樣的,例如可以注冊用戶的那些網站,肯定是動態網頁。因為你登錄后就看到自己的信息,其他人登錄則看到他們自己的信息。
###**內容管理系統**,Content Management System,CMS。
Wordpress,新手必備,博客。
Joomla,公司性質,圖庫。
Drupal,創造力,新建模塊。
###**數據庫**:
**關系型數據庫**有:
1. MySQL:很著名的開源數據庫,常用于博客系統。Wordpress使用的數據庫就是MySQL。
2. PostgreSQL:MySQL的競爭對手。
3. SQL Server:Microsoft(微軟)的數據庫。一般和.NET配合使用。
4. Oracle:Oracle(甲骨文)公司的主要產品。
5. SQLite:很輕巧,就如它的名字里有lite(英語“淡的”)這個尾綴一般。在嵌入式領域使用還比較廣泛,比如Android系統一開始默認使用SQLite數據庫。
**非關系型數據庫**:
NoSQL分為四大類:
1. 鍵值(Key-Value)存儲數據庫:這一類數據庫主要會使用到一個哈希表,這個表中有一個特定的鍵和一個指針指向特定的數據。Key/value模型對于IT系統來說的優勢在于簡單、易部署。但是如果DBA只對部分值進行查詢或更新的時候,Key/value就顯得效率低下了。舉例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB。
2. 列存儲數據庫:這部分數據庫通常是用來應對分布式存儲的海量數據。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:Cassandra, HBase, Riak。
3. 文檔型數據庫:文檔型數據庫的靈感是來自于Lotus Notes辦公軟件的,而且它同第一種鍵值存儲相類似。該類型的數據模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型數據庫可 以看作是鍵值數據庫的升級版,允許之間嵌套鍵值。而且文檔型數據庫比鍵值數據庫的查詢效率更高。如:CouchDB, MongoDb。國內也有文檔型數據庫SequoiaDB,已經開源。
4. 圖形(Graph)數據庫:圖形結構的數據庫同其他行列以及剛性結構的SQL數據庫不同,它是使用靈活的圖形模型,并且能夠擴展到多個服務器上。NoSQL數據庫沒有標準的查詢語言(SQL),因此進行數據庫查詢需要制定數據模型。許多NoSQL數據庫都有REST式的數據接口或者查詢API。如:Neo4J, InfoGrid, Infinite Graph。
5. NoSQL數據庫在以下的這幾種情況下比較適用:
a. 數據模型比較簡單。
b. 需要靈活性更強的IT系統。
c. 對數據庫性能要求較高。
d. 不需要高度的數據一致性。
e. 對于給定key,比較容易映射復雜值的環境。
###**響應式網站的優點:**
1. 一個網站:適應所有設備,更容易管理。
2. 一個URL(可以簡單理解為“網址”):讓你的用戶在移動設備上更容易找到,而且不需要任何的重定向,這在較慢的網速下特別有用。
3. 容易做搜索引擎優化:不需要為移動設備創建特定的內容,可以讓移動設備使用桌面網站的搜索引擎優化的好處。
4. 易于營銷:網站在移動設備上顯示,對于營銷部門來說不需要增加額外的工作量。
5. 成本低:簡單的數學運算,一個網站比兩個網站要便宜吧。
###**響應式網站的缺點:**
1. 一個網站:讓一個網站適配所有網站,對于你來說很容易,但不一定適合你的用戶。你需要在同一個頁面上展示不同的側重點,以便使用該平臺的最大優勢,最大限度的提高你的轉化率。
2. 技術:響應式設計是一種較新的技術,在一些老的設備和瀏覽器中加載頁面速度過慢,甚至是完全不支持。
3. 用戶體驗:移動端和PC機上的用戶體驗是完全不同的。所以一個網,甚至是響應式設計,在兩個平臺上都會損害您整體的UX(User Experience,用戶體驗)。如果你試圖使用相同的界面來滿足移動和桌面的兩個平臺的用戶使用,到最后可能誰都無法滿足。
###**Web App的優點:**
1. 用戶體驗:您有一個網站,是專門為移動設備創建的,考慮到平臺的所有優點和局限性,有不錯的用戶體驗。
2. 速度:您的網站在移動平臺上加載更快,更輕松。
3. 成本:相對于響應式設計,創建一個移動網站并不便宜,但你仍然可以到一個非常合理的價格價的價值。
4. 立即訪問:雖然比響應式設計沒有額外的好處,但對于一個需要下載的安裝的原生App,仍然發揮著它的作用。
###**Web App的缺點:**
1. 多個URL:您的用戶必須記住兩個URL,或以其他的方式重定向到移動網站,這需要幾秒鐘的時間。而且移動網站還需要為SEO做額外的工作。例如:http://www.chinaz.com/ 是站長之家的主站域名,它的移動網站的域名是:http://m.chinaz.com/ 。
2. 維護:您必須得維護兩個網站。
3. 沒有普遍的一致性:你必須考慮到,有兩種不同類型的移動設備:觸摸屏和鍵盤導航。一個單一的移動網不以同樣的方式在所有類型設備上工作。
###**原生App的優點:**
1. 用戶體驗:Native App比任何移動優化方案都具有更好的用戶體驗。親兒子,就是不一樣。原生態,健康品。
2. 輔助功能和速度:應用程序可以運行,即使沒有連接網絡也可以訪問您的所有信息。如果你足夠幸運,擁有一支豐富的團隊和良好的編碼器,你的運用程序可以加載得更快,更順利。
3. 可見性:一旦用戶在移動設備上安裝了,它就一直會顯示在菜單中或在桌面上有一個獨特的圖標。
###**原生App的缺點:**
1. 不能在所有設備上訪問:你的應用程序是建立只是在一個特定的操作系統,這意味著iOS系統上的應用不能在別的設備上訪問。
2. 不具靈活性:所有的應用程序更新都必須通過應用程序商店(例如蘋果的App Store和谷歌的Google Play),每次提交都得獲得批準,這有可能需要長達幾個星期的時間。而且不是每個用戶都很樂意于頻繁的更新,有些人會一直使用舊的版本。
3. 成本高:原生App的開發顯然是眾多解決方案中最貴的一種。
4. 營銷和搜索引擎優化:需要一個完全不同的營銷策略來推廣你的應用程序,你可以需要一個專業的移動營銷人員幫忙。
###**IP是Internet Protocol的簡稱,英語意為“互聯網協議”。**
IPv4和IPv6是IP地址的不同版本,v4就是第四版(v是英語version的首字母,version意為“版本”),那么v6就是第六版。
IPv4的地址長度為32位(共有2^32(2的32次方)個IP地址),分為4段,每段8位,用十進制數字表示,每段數字范圍為0~255,段與段之間用句點隔開。例如159.226.13.1。
IPv6的地址長度為128位(共有2^128(2的128次方)個IP地址),分為8段,每段16位,用十進制數字表示,每段數字范圍為0~65535,段與段之間用句點隔開。如果每個16位用16進制表示,那么例如1080:0000:0000:0000:0008:0800:200C:417A。
DNS,Domain Name System(域名系統)域名必須對應一個IP地址,而IP地址不一定有域名。
協議
TCP,一個端到端(Peer-to-Peer)的傳輸層協議,處于應用層和網絡層之間。
IP協議(Internet Protocol,互聯網協議或網際協議)IP層接收由更低層(網絡接口層例如以太網設備驅動程序)發來的數據包,并把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。
UDP是User Datagram Protocol(用戶數據報協議)
HTTP,HyperText Transfer Protocol(超文本傳輸協議)
HTTP的交換信息(返回碼 200 表示成功):
**HTTPS**
HyperText Transfer Protocol Secure(安全的超文本傳輸協議)的縮寫,比HTTP多加了一層安全防護。我們有時登錄一些網站,就可以看到地址欄最前面變為了https:// 這樣開頭的的。Https協議在Http協議的基礎上,添加了SSL/TLS握手以及數據加密傳輸,也屬于應用層協議。
**FTP協議**
File Transfer Protocol(文件傳輸協議)的縮寫。是一套允許文件在不同的Internet計算機之間進行交換的規則。它與HTTP不同,后者供網頁瀏覽器請求網頁和相關文件以顯示某一頁面,FTP只是用來將文件FTP協議FTP協議從一臺計算機傳送到另一臺。網站開發人員通常使用FTP將網頁從他們自己的計算機傳送到服務器,FTP也常常用來將程序和文件從其他服務器下載到個人計算機。
**SMTP協議**
Simple Mail Transfer Protocol(簡單郵件傳輸協議)的縮寫。是一組用于由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。SMTP協議屬于TCP/IP協議簇,它幫助每臺計算機在發送或中轉信件時找到下一個目的地。
###**職位:**
**FrontEnd**:Frontend是英語“前端”的意思。一般我們所說的Web Frontend就是指“Web前端程序員”。主要負責網站的外觀,也就是“顏值”擔當。一般精通HTML,CSS和JavaScript等客戶端語言。
BackEnd:BackEnd是英語“后端”的意思。一般我們所說的Web Backend就是指“Web后端程序員”。與Web前端程序員配合,主要負責網站服務器端的編寫和維護,也就是“功能”擔當。一般精通PHP,Java,Python,Ruby或C#等服務器端語言。
**QA Manager**:QA市Quality Assurance(質量保證)的意思,manager是“主管”的意思。所以QA Manager就是我們平時所說的“質量主管”,他可以充當客戶的角色,來使用網站。負責網站的正確運行,對網站的質量進行監控,如果有什么問題或有什么需要的新功能,會通知Frontend,Backend或System Administrator來處理。可以想象是一個醫生,確診網站的“疾病”,對網站的健康負責。
**System Administrator**:System是“系統”的意思,Administrator是“管理員”的意思。所以System Administrator就是我們平時所說的“系統管理員”。他就好像一個很厲害的老工程師傅,可以想象提著一個工具箱,到機房里去修修弄弄(當然其實并不見得是這樣)。他保證Web的服務器可以正常運作,負責一些硬件的維修和管理,使網絡暢通無阻,而且一般的SA都熟悉Linux技術,至少會用Linux命令行吧。
**Full Stack**:Full是“全部,完全的”的意思,Stack是“棧”的意思。所以Full Stack就是我們平時所說的“全棧程序員”或“全棧工程師”。他就好像一個“全能騎士”或者身懷絕技的“日本武士”,可以做以上四個職位的所有任務。當然,要成為全棧工程師是很辛苦的,因為什么都要會。騷年,珍愛生命,還是悠著點吧。