Apache Web Server
Apache Web Server
Web server
Web server
World Wide Web (www): Là một phát minh nóng
World Wide Web (www): Là một phát minh nóng
nhất của thế kỷ 20, sau Ti Vi. Nó đem đến cho
nhất của thế kỷ 20, sau Ti Vi. Nó đem đến cho
hàng tỷ người trên thế giới có thể giao tiếp thông
hàng tỷ người trên thế giới có thể giao tiếp thông
qua Internet. Người dùng chỉ cần đơn giản là
qua Internet. Người dùng chỉ cần đơn giản là
“click & wait” thông tin trên màn hình thông qua
“click & wait” thông tin trên màn hình thông qua
1 chương trình web client gọi là Browser
1 chương trình web client gọi là Browser
Ở khía cạnh khác, ta có Web Server, thiết bị
Ở khía cạnh khác, ta có Web Server, thiết bị
phục vụ thông tin cho hàng ngàn web clients.
phục vụ thông tin cho hàng ngàn web clients.
Web server chứa các trang Web, scripts,
Web server chứa các trang Web, scripts,
chương trình, các multimedia files và phục vụ
chương trình, các multimedia files và phục vụ
chúng dùng HTTP, một giao thức dùng riêng
chúng dùng HTTP, một giao thức dùng riêng
cho việc truyền file đến các web browsers.
cho việc truyền file đến các web browsers.
C
C
ác kỹ thuật chính của Web
ác kỹ thuật chính của Web
H
H
ệ thống địa chỉ
ệ thống địa chỉ
, Universal Resource Locators
, Universal Resource Locators
(URLs), cho ph
(URLs), cho ph
ép tải về các loại thông tin khác nhau
ép tải về các loại thông tin khác nhau
trên Internet
trên Internet
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)
định nghĩa
định nghĩa
một ngôn ngữ (
một ngôn ngữ (
protocol) c
protocol) c
ủa việc làm thế nào để
ủa việc làm thế nào để
web
web
clients v
clients v
à
à
servers c
servers c
ó thể trao đổi thông tin
ó thể trao đổi thông tin
multimedia
multimedia
HperText Markup Language (HTML) cho ph
HperText Markup Language (HTML) cho ph
ép
ép
users bi
users bi
ên soạn
ên soạn
multimedia hypertext documents
multimedia hypertext documents
TCP/IP protocol ph
TCP/IP protocol ph
ục vụ ở mức thấp
ục vụ ở mức thấp
tr
tr
ên
ên
Internet
Internet
cho ph
cho ph
ép
ép
HTTP v
HTTP v
à
à
c
c
ác ứng dụng khác chạy trên nó.
ác ứng dụng khác chạy trên nó.
Call Stack
Call Stack
Vai tr
Vai tr
ò Web Server
ò Web Server
Web server chỉ có 1 ít vai trò trong data được
Web server chỉ có 1 ít vai trò trong data được
hiển thị như thế nào trên client. Ngoại trừ việc
hiển thị như thế nào trên client. Ngoại trừ việc
dùng XML+ứng dụng. Thông thường, web
dùng XML+ứng dụng. Thông thường, web
server truyền thông tin và browser phải dùng nó
server truyền thông tin và browser phải dùng nó
cho thích hợp.
cho thích hợp.
Web server cũng có thể thực thi chương trình để
Web server cũng có thể thực thi chương trình để
sinh ra thông tin động. Ta gọi là xử lý server-
sinh ra thông tin động. Ta gọi là xử lý server-
side để sinh ra các trang Web tương tác. (Khác
side để sinh ra các trang Web tương tác. (Khác
với JavaScript, sinh ra xử lý client-side xử lý
với JavaScript, sinh ra xử lý client-side xử lý
tương tác web pages). Web server có thể tạo ra
tương tác web pages). Web server có thể tạo ra
các ứng dụng dùng các form. Nó cho phép web
các ứng dụng dùng các form. Nó cho phép web
server đóng vai trò 1 gateway để truy cập vào
server đóng vai trò 1 gateway để truy cập vào
các tài nguyên khác không thuộc Webserver
các tài nguyên khác không thuộc Webserver
như là local file systems, database, mainframe
như là local file systems, database, mainframe
data, v.v….
data, v.v….
C
C
ác
ác
Web Servers Software
Web Servers Software
Java Web Server
Java Web Server
Apache Web Server
Apache Web Server
Microsoft Personal Web Server
Microsoft Personal Web Server
Microsoft Frontpage Web Server
Microsoft Frontpage Web Server
Microsoft Internet Information Server
Microsoft Internet Information Server
Web Server Overview
Web Server Overview
Web Server không chỉ là 1 máy tính lớn
Web Server không chỉ là 1 máy tính lớn
nằm đâu đó trong phòng server với năng
nằm đâu đó trong phòng server với năng
lực xử lý lớn và nhiều memory.
lực xử lý lớn và nhiều memory.
Web Server = Computer Hardware +
Web Server = Computer Hardware +
Operating System + Web Server Software +
Operating System + Web Server Software +
Info Content
Info Content
Với góc độ software engineer, ta sẽ tập
Với góc độ software engineer, ta sẽ tập
trung vào software, do đó, Web Server là:
trung vào software, do đó, Web Server là:
Web Server = Operating System + Web
Web Server = Operating System + Web
Server Software + Info Content
Server Software + Info Content
Các thành phần chính
Các thành phần chính
Operating System: (Windows, UNIX, AS/400,
Operating System: (Windows, UNIX, AS/400,
Mainframe) nơi mà web server chạy.
Mainframe) nơi mà web server chạy.
Web Server Software là 1 deamon luôn đợi và phục vụ
Web Server Software là 1 deamon luôn đợi và phục vụ
yêu cầu từ web client thông qua mạng.
yêu cầu từ web client thông qua mạng.
Web server phải hiểu request từ clients. Protocol được
Web server phải hiểu request từ clients. Protocol được
dùng bởi Web server là Hypertext Transfer Protocol
dùng bởi Web server là Hypertext Transfer Protocol
(HTTP). Khái niệm quan trọng nhất là TCP port. Web
(HTTP). Khái niệm quan trọng nhất là TCP port. Web
Server thường sử dụng port 80, tuy nhiên điều này có
Server thường sử dụng port 80, tuy nhiên điều này có
thể thay đổi tuỳ theo admin cấu hình
thể thay đổi tuỳ theo admin cấu hình
Nội dung, là thông tin chứa trong web server. Nó có thể
Nội dung, là thông tin chứa trong web server. Nó có thể
là thông tin trong localhost hoặc từ database hoặc từ các
là thông tin trong localhost hoặc từ database hoặc từ các
server khác
server khác
Web Server truyền thống
Web Server truyền thống
Web Server truyền thống không hiểu nội dung
Web Server truyền thống không hiểu nội dung
của tài liệu. Nói cách khác, tất cả tài liệu xem
của tài liệu. Nói cách khác, tất cả tài liệu xem
như là 1 stream of data từ server đến client.
như là 1 stream of data từ server đến client.
Thông thường, web server không biết hyper
Thông thường, web server không biết hyper
links nằm trong documents, links chỉ là 1 phần
links nằm trong documents, links chỉ là 1 phần
của document từ cái nhìn của web server. Khi
của document từ cái nhìn của web server. Khi
user clicks vào hyperlink, browser sẽ request
user clicks vào hyperlink, browser sẽ request
document khác từ hyperlink. Do đó, browser
document khác từ hyperlink. Do đó, browser
“quản lý" hyperlink thay vì web server.
“quản lý" hyperlink thay vì web server.
Ngoài ra, web server không biết về các images,
Ngoài ra, web server không biết về các images,
movie hay voice pieces. Tất cả các MIME được
movie hay voice pieces. Tất cả các MIME được
requested riêng lẻ từ browser.
requested riêng lẻ từ browser.
Document Tree
Document Tree
documents, images, và các thông tin khác
documents, images, và các thông tin khác
mà web server phải phục vụ được tổ chức
mà web server phải phục vụ được tổ chức
thành 1 cây hay một dạng cấu trúc phân
thành 1 cây hay một dạng cấu trúc phân
cấp. Gốc của cây là điểm bắt đầu với các
cấp. Gốc của cây là điểm bắt đầu với các
node con (hay node) theo sau nó. Chú ý
node con (hay node) theo sau nó. Chú ý
rằng Web tree thường khác với different
rằng Web tree thường khác với different
local file system tree.
local file system tree.
Web Document Tree
Web Document Tree
File System Tree
File System Tree
(Using mc)
(Using mc)
Information Type
Information Type
Việc cố gắng xem 1 tập tin audio như là 1 image
Việc cố gắng xem 1 tập tin audio như là 1 image
sẽ không thành công, cũng như xem ASCII text
sẽ không thành công, cũng như xem ASCII text
như là image cũng thế. Browser phải biết tàiliệu
như là image cũng thế. Browser phải biết tàiliệu
dạng gì để hiển thị cho đúng
dạng gì để hiển thị cho đúng
Trước tiên, web server sẽ gửi một header thông
Trước tiên, web server sẽ gửi một header thông
tin và nói với client rằng loại thông tin nào đang
tin và nói với client rằng loại thông tin nào đang
đến
đến
Content-type: application/postscript
Content-type: application/postscript
Content-encoding: gzip
Content-encoding: gzip
Ta gọi nó là Content-type MIME info
Ta gọi nó là Content-type MIME info
Extension Contents
Extension Contents
.html, .htm HTML document
.html, .htm HTML document
.txt Unformatted ASCII
.txt Unformatted ASCII
.ps PostScript
.ps PostScript
.gif GIF image
.gif GIF image
.mpeg MPEG image
.mpeg MPEG image
.wrl, vrml VRML scene description
.wrl, vrml VRML scene description
.class Java applet
.class Java applet
etc etc
etc etc
Giới thiệu HTTP
Giới thiệu HTTP
Overview
Overview
HTTP định nghĩa một ngôn ngữ request-
HTTP định nghĩa một ngôn ngữ request-
response đơn giản
response đơn giản
Web client thiết lập kết nối với web server dùng
Web client thiết lập kết nối với web server dùng
HTTP.
HTTP.
HTTP định nghĩa câu truy vấn và đáp ứng sẽ
HTTP định nghĩa câu truy vấn và đáp ứng sẽ
như thế nào
như thế nào
HTTP không định nghĩa làm thế nào mà kết nối
HTTP không định nghĩa làm thế nào mà kết nối
được thiết lập hay làm thế nào dữ liệu được
được thiết lập hay làm thế nào dữ liệu được
truyền đi; điều này được làm bởi các lower-level
truyền đi; điều này được làm bởi các lower-level
protocols như là TCP/IP
protocols như là TCP/IP
Client Request
Client Request
Một HTTP request gồm các điều sau:
Một HTTP request gồm các điều sau:
Phương pháp (method)
Phương pháp (method)
Universal Resource Identifier (URI):tên của
Universal Resource Identifier (URI):tên của
thông tin yêu cầu which is the name of the
thông tin yêu cầu which is the name of the
information request
information request
Protocol version
Protocol version
Optional supplemental information
Optional supplemental information
HTTP method
HTTP method
GET: Trả về object; lấy thông tin
GET: Trả về object; lấy thông tin
HEAD: Chỉ trả về thông tin của object, chứ
HEAD: Chỉ trả về thông tin của object, chứ
không phải là object
không phải là object
POST: Gửi thông tin đến để lưu lên server.
POST: Gửi thông tin đến để lưu lên server.
Nhiều server không cho phép thông tin được
Nhiều server không cho phép thông tin được
POST lên ngoại trừ đó là input của 1 scripts
POST lên ngoại trừ đó là input của 1 scripts
PUT: Gửi 1 phiên bản mới của 1 object đã có
PUT: Gửi 1 phiên bản mới của 1 object đã có
lên server. Nhiều servers không cho phép
lên server. Nhiều servers không cho phép
documents được PUT.
documents được PUT.
DELETE: Xoá object. Giống như PUT, method
DELETE: Xoá object. Giống như PUT, method
này bị cấm bởi hầu hết các servers
này bị cấm bởi hầu hết các servers
Ví dụ
Ví dụ
[root@alibaba root]# telnet www.hcmutrans.edu.vn 80
[root@alibaba root]# telnet www.hcmutrans.edu.vn 80
Trying 203.162.44.49
Trying 203.162.44.49
Connected to www.hcmutrans.edu.vn.
Connected to www.hcmutrans.edu.vn.
Escape character is '^]'.
Escape character is '^]'.
GET /index.html HTTP/1.0
GET /index.html HTTP/1.0
HTTP/1.1 200 OK
HTTP/1.1 200 OK
Date: Tue, 02 Dec 2003 14:39:26 GMT
Date: Tue, 02 Dec 2003 14:39:26 GMT
Server: Apache/1.3.28 (Unix) PHP/4.3.3
Server: Apache/1.3.28 (Unix) PHP/4.3.3
Last-Modified: Fri, 24 Oct 2003 19:27:08 GMT
Last-Modified: Fri, 24 Oct 2003 19:27:08 GMT
ETag: "272dff-2c1c-3f997d0c"
ETag: "272dff-2c1c-3f997d0c"
Accept-Ranges: bytes
Accept-Ranges: bytes
Content-Length: 11292
Content-Length: 11292
Connection: close
Connection: close
Content-Type: text/html
Content-Type: text/html
<HTML><HEAD>
<HTML><HEAD>
<TITLE>Welcome to hcmutrans Website</TITLE>
<TITLE>Welcome to hcmutrans Website</TITLE>
<META content="text/html; charset=windows-
<META content="text/html; charset=windows-
Header Field Description
Header Field Description
User-Agent: Loại browser, IE, Netscape
User-Agent: Loại browser, IE, Netscape
If-Modified-Since: Hỏi nếu object đuợc yêu
If-Modified-Since: Hỏi nếu object đuợc yêu
cầu là mới. Nhằm giảm chi phí đường
cầu là mới. Nhằm giảm chi phí đường
truyền
truyền
Accept: Kiều MIME (Mulitpurpose Internet
Accept: Kiều MIME (Mulitpurpose Internet
Mail Extensions) và dạng của thông tin mà
Mail Extensions) và dạng của thông tin mà
browser phải chuẩn bị để tiếp nhận
browser phải chuẩn bị để tiếp nhận
Authorization: User password hay các
Authorization: User password hay các
kiểu authentication được yêu cầu
kiểu authentication được yêu cầu
Server Response
Server Response
Một HTTP response bao gồm:
Một HTTP response bao gồm:
Dòng trạng thái chỉ ra thành công hay thất bại
Dòng trạng thái chỉ ra thành công hay thất bại
của request
của request
Mô tả thông tin trong response.
Mô tả thông tin trong response.
Thông tin thực sự được yêu cầu
Thông tin thực sự được yêu cầu
Status line có dạng
Status line có dạng
HTTP-version: Version của HTTP
HTTP-version: Version của HTTP
Status-code: con số chỉ ra kết quả của
Status-code: con số chỉ ra kết quả của
request
request
Reason: Một câu giải thích ngắn về ý
Reason: Một câu giải thích ngắn về ý
nghĩa của con số
nghĩa của con số
Metadata (Metainformation) Chỉ cho
Metadata (Metainformation) Chỉ cho
browser biết để hiển thị thông tin
browser biết để hiển thị thông tin
HTTP status code
HTTP status code
200: Document follows. The request succeeded. The information
200: Document follows. The request succeeded. The information
requested follows.
requested follows.
301: Moved Permanently. The document has moved to a new URL
301: Moved Permanently. The document has moved to a new URL
302: Moved Temporarily . The document has moved temporarily to
302: Moved Temporarily . The document has moved temporarily to
a new URL
a new URL
304: Not Modified. The document has not been modified since the
304: Not Modified. The document has not been modified since the
date specified in a GET request with if-modified-since.
date specified in a GET request with if-modified-since.
404: Not Found. The information could not be found or permission
404: Not Found. The information could not be found or permission
was denied. This error is returned if the requested URL does not
was denied. This error is returned if the requested URL does not
exist or was misspelled
exist or was misspelled
401: Unauthorized .The information is restricted; please retry with
401: Unauthorized .The information is restricted; please retry with
proper authentication.
proper authentication.
402: Payment Required. The information requires paying a fee;
402: Payment Required. The information requires paying a fee;
please retry with proper payment (not used often)
please retry with proper payment (not used often)
403: Forbidden. Access is forbidden
403: Forbidden. Access is forbidden
500: Server Error. The server experienced an error
500: Server Error. The server experienced an error
Quá trình hoạt động HTTPD
Quá trình hoạt động HTTPD
Quá trình hoạt động HTTPD 2
Quá trình hoạt động HTTPD 2