跳到主要內容

網頁技術初探


網頁技術初探(1)

網頁請求與回應

近幾年很流行的動態網頁,說明網頁即時回應的重要我們利用下圖去說明動態網頁的運作
,當我們打開瀏覽器時,我們會輸入URL來連結網頁的內容,這時會向網頁伺服器送出請求,根據使用者要求執行網頁程式(ASP、JSP和PHP)等等執行程式的程序,會將程式執行的結
果,再給網頁伺服器再回應給瀏覽器。在這過程中,網頁伺服器扮演著編譯器的角色,而望頁程式扮演的執行者的角色,網頁伺服器主要工作會把執行者執行的結果編譯成網頁格式(HTML),回傳給前端使用者。我們下面會一一解析它們扮演角色的重要性。


網頁伺服器:

一個網頁伺服器,主要會完成三項任務
  1. 它會提供服務
  2. 它提供空間放置網頁
  3. 它會提供HTTP協定與瀏覽器做溝通        

而要達到網頁伺服器必須建置網頁伺服器的程式,目前比較有名的網頁伺服器如下:
  • Apache軟體基金會的Apache HTTP伺服器
  • Microsoft的Internet Information Server(IIS)
  • Google的Google Web Server

網頁程式 :

網頁程式主要可以分為客戶端網頁程式與伺服器端網頁程式,主要的不同是伺服器端網頁程式是在伺服器端的網頁程式都需要編譯器去編譯程式才會執行,主要的工作例如:製作報表、商業邏輯、連結資料庫等等。比較不會因為客戶端的不同而去需要改變,但是當多人使用時,需要考慮到網路頻寬與伺服器硬體的問題。至於客戶端的網頁程式應用瀏覽器中,只要瀏覽器是以直譯的方式顯示,主要做一些網頁排版或是動態顯示等等,例如:身分證驗證、電子郵件驗證等等都是常看到的應用。

*客戶端網頁程式:  JavaScriptCSSVBScript
*伺服器端網頁程式 : PHP ASP JSPPerl

各種程式的優勢與劣勢


網頁程式 優點 缺點
PHP好學、有強大的函式庫
支援套件多

網頁語法與PHP程式會混在一起,維護不易
非物件導向程式語言不好做擴展
JSP 網頁顯示與程式可以分開
容易模組化
可以自訂開Tag
多種framwork可以使用
多平台使用
學習時間長
framework容易無法長期支援,而造成維護困難
ASPIDE整合環境好,開發快
網頁顯示與程式可以分開
使用者可以快速上手
很難學習到技術基礎
有些企業的需求無法滿足


待續....




留言

這個網誌中的熱門文章

GSON基礎教學

GSON 前言 JSON是很常見的資料交換格式,在JAVA領域常用處理JSON的函式庫:GSON、FastXML和JSON-B,本章節會以GSON為主,學習目標如下 JSON格式說明 GSON 套件函式 GSON: 物件轉換JSON字串 GSON: JSON字串轉換物件 JSON 格式說明 JSON全名為JavaScript Object Notation,它是一種輕量級的資料交換格式,會大為流行的理由,主要是他比傳統用xml更輕巧且容易處理, JSON表達方式物件會用大括弧{},陣列則是用中括號[]。 用JSON字串來表達Employee的物件內容,由JSON字串可以知道物件name、age、sex和salary屬性。 JSON表示員工資料方式: {“name”:”Jack Bryant”, “age”:18, “sex”:”M”,”salary”:3500.00} JSON陣列表示方式: 跟我們使用JAVA的陣列方式類似,內容值可以是數字’、文字、布林、陣列、物件、null等等。 範例: 字串: [“紅”、”橙”、”黃”、”綠”、”青”、”藍”、”紫”} 布林: [true, true, false, false, true, true] GSON 套件函式 Gson為google所發布的函式庫,主要將物件與json字串之間的轉換時方便使用。當我們將JAVA物件轉換成JSON字串稱為 序列化 ,JSON字串轉換至JAVA物件稱為 反序列化 。 GSON: 物件轉換JSON字串 有了JSON基本概念後,我們進入本章重點,首先我們需要建立員工類別(Employee),定義如下 物件 屬性 員工類別 Employee name 名字 age 年紀 sex 性別 salary 薪水 /** * name:員工類別 */ public class Employee implements Serializable { //constructor public Employee(String name, double salary){ this.name = name; this.sala...

PHP與Python搭配

今天介紹如何利用php網頁呼叫目錄下的python程式工作或是資料交換,本人整理的方法有兩種 使用system()、exec()、shell_exec()呼叫程式 (1) string system ( string return_var ] ) 參考網址 官網解釋system()用來執行外部命令,返回為印出的結果,passthru()跟system()類似但是它不會返回結果。 範例1. 利用system執行ls指定並顯示在網頁上,無法使用變數保留ls的結果 檔案名稱: psystem.php $jsondata= system("ls -al", $result); 結果: (2) exec() : string exec ( string output [, int &$return_var ]] ) 參考網址 範例2. 利用exec執行python程式並可以回傳json格式給前端網頁做處理並顯示。我們ptopy.php就是可以看到callpy()為執行py的函式,它執行完pyEx01.py會將結果給$jsondata變數,做後面json解析。 檔案名稱: ptopy.php function callpy() { $jsondata= exec("/usr/bin/python pyEx01.py"); return $jsondata ; } $jsondata= callpy(); echo $jsondata ; echo " " ; $obj = json_decode($jsondata) ; echo "name:".$obj-> { 'name'} .',' ; echo "id:".$obj-> { 'id'} ; 檔案名稱: pyEx01.py import sys ...

Python AI-問題集

Python AI-問題集 問題集 Jupyter Notebook執行ipywidgets會出現kernel死掉的錯誤發生(The kernel appears to have died) 解決方法 (1) 根據log檔來判斷問題: 例如:log訊息出現OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized. (2) 根據問題關鍵字找出問題所在: 利用google查詢所遭遇到的問題,例如我把上面的問題上google查詢可以找到這篇的解法 https://blog.csdn.net/bingjianIT/article/details/86182096 (3)實作解法: 我實作下面解法後,就可以順利執行手寫辨識的程式. //在Python宣告時加入 import os os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" 參考 https://blog.csdn.net/bingjianIT/article/details/86182096