1
The HTTP Protocol
&
Web Server
Web Server & Các vấn đề liên
quan
Vai trò của web server
• Nhận các yêu cầu từ trình duyệt
• Cung cấp
– Dịch vụ truy xuất các các tài liệu siêu liên kết
– Quản lý việc truy cập đến các website
– Cung cấp một số cơ chế cho việc thực hiện các mã
scripts phía Server (ASP, PHP, JSP, vv..)
• CGI-Common Gateway Interface
• API-Application Programming Interface
– Tạo ra file nhật ký và thống kê sử dụng
Các loại web server
Khảo sát của netscraft.com tính đến tháng 4/2008
Mô hình tương tác giữa WebServer và
Client
Client
Server machine
Requests
HTTP
server
Browser
Responses
Client
Browser
HTML documents
CGI scripts
ASP, PHP, JSP vv..
Các bước truyền thông giữa Client và
Server
Các công việc thực hiện phía
Server
1.
2.
3.
4.
Chấp nhận kết nối từ Client hoặc đóng kết nối
Nhận request
Xử lý request
Truy cập vào tài nguyên được chỉ ra trong
request
5. Tạo ra HTTP response với các kết quả theo yêu
cầu của client
6. Gửi response cho client
7. Ghi lại giao dịch vào file nhật ký
Các công việc thực hiện phía
Server
1.
Nhận kết nối:
•
Nhận hoặc từ chối kết nối
•
Xác định định danh máy Client
•
Xác định danh người dùng (ident protocol)
2.
Nhận các request từ client
•
Nhận các request từ client
•
Đọc các request và biểu diễn ở dạng phù hợp cho việc xử lý
Các công việc thực hiện phía
Server
Nhận request từ client
Cấu trúc lại request để thuận lợi cho việc xử lý
Các công việc thực hiện phía
Server
3. Xử lý request:
Khi web server nhận được request nó sẽ
xử lý request tùy thuộc vào dạng
request
4. Truy cập vào tài nguyên được chỉ ra
trong request
Web Server hỗ trợ nhiều dạng ánh xạ
tài nguyên nhưng dạng đơn giản nhất đó
là sử dụng request URI để chỉ đến tài
nguyên trên webserver.
Các công việc thực hiện phía
Server
5. Tạo ra HTTP response với các kết
quả theo yêu cầu của client
– Khi web server định danh được tài nguyên, nó thực hiện
hành động chỉ ra trong request method (PUT, GET,
DELETE, vv…) và tạo ra response cho client. Response
gồm có: mã trạng thái, header, nội dung
Các công việc thực hiện phía
Server
6. Gửi response cho client
– Server cần lưu lại toàn bộ trạng thái các kết nối từ client, để có thể gửi
response cho client một cách chính xác
7. Ghi lại giao dịch vào file nhật ký
– Khi giao dịch hoàn tất, web server ghi vào file nhật ký mô tả giao dịch vừa
thực hiện.
Web Proxy
•
Mục đích của Proxy:
– Tiết kiệm, nâng cao hiệu xuất, tăng cường an ninh
• Proxy quản lý và can thiệp được vào các kết nối.
Web Proxy
• Web Proxy Server có vai trò trung gian
chuyển tiếp các giao dịch giữa Client
và Web Server, nếu không có web proxy
thì client và Server thì sẽ giao dịch
trực tiếp với nhau.
Web Proxy
Nâng cao hiệu xuất
Web Cache
•
Mục tiêu:
– Giảm tải cho server
– Nâng cao hiệu năng hiệu năng hệ thống mạng
•
Giải pháp:
– Giải pháp thực hiện là làm lưu lại nội dung của web server được truy cập, những
yêu cầu đến nội dung đến
Cache, Hits và miss
•
Những request đến cache mà được response ngay
từ bản copy đã có trên cache thì được gọi là
Cache hit
•
Những request đến cache sau đó được chuyển tiếp
đến Server do chưa có bản copy về nội dung đó
trên cache thì gọi là cache miss.
Cache, Hits và miss
Các bước cache
1.Nhận: Cache đọc các request đến từ các
client
2.Phân tách-Cache phân tách thông điệp,
trích ra URL và các header
3.Lookup-Cache kiểm tra nếu như bản copy
đã có sẵn hay chưa, nếu chưa có thì lấy
thông tin về Server về và lưu lại
4.Kiểm tra xem nội dung bản copy có thay
đổi gì không (fresh check)- nếu có sẽ
lấy bản mới về
5.Tạo Response- Cache tạo một response
với các header mới và nội dung cache
6.Gửi-Cache response lại cho client
7.Ghi lại nhật ký- Đây là tùy chọn, cache
có thể ghi lại nhật ký truy cập mô tả
giao dịch vừa thực hiện
Các bước cache
Các bước thực hiện cache
Gateway
– Gateway là điểm gắn kết giữa ứng dụng và tài nguyên, một
ứng dụng có thể yêu cầu (qua giao thức HTTP hoặc qua giao
thức khác) gateway phục vụ yêu cầu nào đó, và gateway có thể
trả lại response cho Client
– Gateway có thể thực hiện truy vấn cơ sở dữ liệu hoặc tạo ra
các nội dụng động, tức là đóng vai trò như một portal nhận
request và trả lời
Gateway Security
– Gateway có thể được sử dụng để cung cấp tính bảo mật và an tòan cho một tổ
chức, bằng cách mã hóa toàn bộ các request đến. Client có thể duyệt web sử dụng
giao thức HTTP bình thường, nhưng gateway sẽ tự động mã hóa phiên làm việc
của người dùng
Gateway Security
•
Gateway có thể đứng trước webserver để nhận các
request đã được mã hóa từ client, sau đó giải
mã và gửi đến cho webserver xử lý:
Proxy và gateway
Proxy kết nối ứng dụng có giao thức giống
nhau, gateway có thể kết nối các ứng
dụng các giao thức khác nhau
Web Hosting
•
Dedicated Hosting: Thuê riêng máy chủ để đặt
ứng dụng web