Bài giảng The HTTP Protocol và 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

 

 

ppt78 trang | Chuyên mục: Thương Mại Điện Tử | Chia sẻ: dkS00TYs | Lượt xem: 3369 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng The HTTP Protocol và Web Server, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
tài nguyên tương tự nhưng ở máy chủ gần mình hơn và như vậy sẽ nhanh hơn là truy cập đến một máy chủ ở xa Redirection và Loadbalancing Server, Proxy, cache, và gateway đóng vai trò như server và sự chuyển hướng và cân bằng tải sang các thành phần này sẽ làm tăng hiệu suất hệ thống, làm hệ thống tin cậy hơn Các dạng chuyển hướng (redirection) HTTP redirection DNS redirection IP MAC forwarding IP Address Forwarding Redirection và Loadbalancing HTTP Redirection Redirection và Loadbalancing DNS redirection Redirection và Loadbalancing DNS Redirection DNS Round Robin Là một trong những kỹ thuật chuyển hướng đơn giản nhất, DNS round robin sử dụng phân giải tên máy chủ để cân bằng tải giữa các Server. Redirection và Loadbalancing IP MAC Forwarding Redirection và Loadbalancing IP Address Forwarding Vấn đề ghi nhật ký của webserver Mục đích: Kiểm tra các vấn đề trên server hoặc proxy (ví dụ: xem có request nào bị lỗi) và tạo ra thống kê về lượng truy cập ứng dụng web từ đó xác định lượng Server, băng thông, cần thiết cho ứng dụng web ngoài ra còn hữu ích cho nhiều vấn đề khác Các giá trị thường được ghi lại: HTTP method (PUT, GET, POST, vv..) Phiên bản giao thức HTTP của cả client và Server URL của tài nguyên được yêu cầu Mã trạng thái HTTP của response         Kích cỡ thông điệp của request và response Thời gian của giao dịch khi thực hiện Giá trị Header của trình duyệt người dùng và tham chiếu tài nguyên Định dạng file log chung cho mọi web server Vấn đề ghi nhật ký của webserver Dạng ghi nhật ký kết hợp Thêm hai trường vào định dạng chung đó là trường Ví dụ: - Định dạng chung 209.1.32.44 - - [03/Oct/1999:14:16:00 -0400] "GET / HTTP/1.0" 200 1024 Dạng kết hợp: 209.1.32.44 - - [03/Oct/1999:14:16:00 -0400] "GET / HTTP/1.0" 200 1024 ""  "5.0: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)" Vấn đề ghi nhật ký của webserver Google Server System Khái niệm về cluster Là tập hợp các máy tính, kết hợp với nhau thành một hệ thống thống nhất qua một mạng riêng gọi là cluster network. Việc kết hợp được thực hiện qua phần mềm và hệ thống mạng. Mục đích là tăng hiệu năng tính toán của hệ thống Một Cluster cơ bản Public network Head Node Compute Nodes Private Network Clusters Head node thường có 2 giao diện mạng, một kết nối vào hệ thống mạng chung, một kết nối vào mạng cluster Compute node không truy cập trực tiếp từ mạng ngoài được Head node phân chia công việc tới các nút tính toán và quản lý cluster. Trong hệ thống lớn có thể có nhiều head node, hệ thống mạng phức tạp hơn, và có cả những node sử dụng cho việc lưu dữ liệu Kiến trúc google Hệ thống Server của google được xây dựng theo mô hình hệ thống cluster, gồm rất nhiều cluster được phân bố khắp nơi trên thế giới Mỗi Cluster có vài nghìn Server Một Google Clusters chuẩn 359 racks 31,654 machines 63,184 CPUs 26,368 Ghz of processing power 63,184 Gb of RAM 2,527 Tb of Hard Drive space Google Cluster Khả năng phục vụ hơn 50 nghìn yêu cầu tìm kiếm /1 giây Đánh chỉ mục được hơn 8 triệu website Lượng băng thông sử dụng tăng từ 20-30%/1 tháng Google cluster Các server được cài hệ điều hành Linux Sử dụng web server là Google Web Server Sử dụng hệ thống file system GFS (Google File System) Google thực hiện cân bằng tải (load Balancing) dựa trên DNS Mô hình xử lý truy vấn của google Giao thức HTTP * HTTPHypertext Transfer Protocol Refs: RFC 1945 (HTTP 1.0) RFC 2616 (HTTP 1.1) Giao thức HTTP HTTP là giao thức hỗ trợ truyền thông giữa Web browsers và web server Một web Server là một HTTP Server Transport Independence Theo tài liệu RFC thì HTTP thực hiện phía trên kết nối TCP nhưng bản thân giao thức HTT không phụ thuộc vào tầng vận tải Request - Response HTTP có cấu trúc đơn giản: Client gửi một request Server trả về một Reply HTTP có thể hỗ trợ nhiều trao đổi request-reply thông qua một kết nối TCP Cổng sử dụng Cổng 80 là cổng mặc định cho giao thức HTTP Tuy nhiên các cổng khác có thể sử dụng Giao tiếp giữa Client và Server Các kết nối Persistent Connections Trong giao thức HTTP ban đầu, mỗi yêu cầu được thực hiện qua kết nối mới, vì vậy trang HTML với nhiều thành phần ảnh riêng rẽ sẽ phải cần rất nhiều các request để trang được nạp đầy đủ Vd: n bức ảnh sẽ cần n+1 request để nạp được toàn bộ trang TCP sử dụng bắt tay 3 chiều khi thiết lập một kết nối, vì vậy có độ trễ đáng kể trong việc thiết lập một kết nối: Client gửi SYN Server trả lời ACK/SYN Client trả lời ACK HTTP1.0 đưa ra đặc tính duy trì kết nối (keep-alive) Kết nối giữa các client và server được duy trì trong một khoảng thời gian cho phép nhiều yêu cầu và trả lời giữa client và server HTTP/1.0 Keep Alive Connections Yêu cầu kết nối Gửi yêu cầu đầu tiên Nhận trả lời đầu tiên Gửi yêu cầu thứ 2 Nhận trả lời thứ 2 Các yêu cầu tiếp theo…… Đóng kết nối Trả lời yêu cầu kết nối Nhận yêu cầu Gửi trả kết quả yêu cầu Nhận yêu cầu thứ 2 Gửi trả kết quả yêu cầu Các trả lời tiếp… Đóng kết nối Client Server Định dạng yêu cầu từ Client (Client HTTP Requests) Các request của client có 4 trường: HTTP_method, identifier, HTTP_version, Body HTTP_Method: Chỉ ra phương thức nào được thực hiện trên địa chỉ URL (GET, HEAD,POST…) Identifier: Định danh địa chỉ của tài nguyên yêu cầu URL HTTP_version: là phiên bản hiện tại HTTP vd HTTP/1.1 Body là phần nội dung GET Method Được sử dụng để lấy dữ liệu được chỉ ra trong URI GET /blah/index.html HTTP/1.0 Accept: text/html User-Agent: Lynx/2.2 libwww/2.14 POST Method Được sử dụng để truyền dữ liệu từ client đến Server POST /cgi-bin/post-query HTTP/1.0 Accept: text/html User-Agent: Lynx/2.2 libwww/2.14 Content-type: application/x-www-form-urlencoded Content-length: 150 org=CyberWeb%20SoftWare &users=10000 &browsers=lynx HEAD Method Giống như GET nhưng chỉ lấy Header HEAD /blah/index.html HTTP/1.0 Accept: text/html User-Agent: Lynx/2.2 libwww/2.14 PUT Method -Yêu cầu đối tượng được lưu vào nơi đã chỉ ra trong URI, cho phép client đưa dữ liệu nên Server DELETE Method Yêu cầu xóa bỏ đối tượng có địa chỉ được chỉ ra trong URI Cho phép client xóa file trên Server OPTIONS Method Là cách thức client tìm hiểu về khả năng của Server mà không cần thực hiện yêu cầu một tài nguyên nào đó Ví dụ: Một proxy có thể kiểm tra xem server có chấp nhận một phiên bản của giao thức nào đó không Request Dòng khởi tạo headers Dòng trắng Nội dung GET /index.html HTTP/1.0 Host: www.wally.pl User-Agent: MSIE/Mozilla Response Dòng khởi tạo headers Dòng trống Nội dung HTTP/1.0 200 OK Date: Sunday, 	25 November 2001 	18:42:05 GMT Content-Type: text/html Content-Length: 109 Request Headers Accept: text/html, image/* 	Chỉ ra dạng media được chấp nhận Accept-Charset: iso-8859-5 	Chỉ ra tập ký tự được chấp nhận Accept-Encoding: compress, gzip 	Chỉ ra loại mã được chấp nhận Accept-Language: en, fr=0.5 	Chỉ ra ngôn ngữ được ưu tiên, chấp nhận	 Authorization: 	Sử dụng để chuyển các thông tin mật xác thực người dùng đến Server Request Headers Host: www.sfsu.edu:8080 	Tên máy chủ và cổng yêu cầu trong URL Referer:  	URL của tài liệu mà nó tham chiếu đến tài liệu đưa ra trong URL của request User-agent: Mozilla/4.5 (X11;Solaris 5.1) 	Tên và phiên bản trình duyệt của người dùng và thậm chí có thể cả hệ điều hành sử dụng	 Request Headers Ví dụ về GET Request Một GET request yêu cầu lấy một tài liệu từ Server ví dụ Nhấn vào đây Request từ client có thể chứa các dòng sau: GET /html/file.html HTTP/1.1 Accept: text/plain Accept: application/pdf Accept: application/html Accept: text/x-html Accept: audio/* ... Accept: */* User-Agent: NCSA Mosaic for the X Window System/2.4 Referer:  If-Modified-Since: Wed, 11 Feb 2008 13:14:15 GMT Response Headers Response Headers Response Header Một URL có thể chỉ ra một tài liệu với nhiều thể hiện: Ngôn ngữ, định dạnh (html, pdf), vv Ví dụ request từ client: 	GET  HTTP/1.1 	User-agent: Mozilla/4.5 	Accept-language: en Response từ Server: 	HTTP/1.1 200 OK 	Vary: Accept-language 	Content-type: text/html 	Content-language: en Cookies Là đoạn dữ liệu nhỏ được trao đổi bởi các thành phần tham gia truyền thông gồm các thông tin về tên máy chủ, thông tin điều khiển, nhãn thời gian vv..và những thông tin này được lưu ở phía client Cookie thường được dùng để lưu giữ trạng thái cho giao thức HTTP Nó còn được dùng để lưu trữ những thông tin của người dùng khi sử dụng ứng dụng và những dữ liệu khác của session HTTP Cookies 	Set-Cookie: NAME=VALUE; expires=DATE; 	Cookie: NAME1=OPAQUE_STRING1; Các thuộc tính của Cookie Tên-name Giá trị-value Thời gian hết hạn của cookie Đường dẫn cookie hợp lệ Miền mà cookie hợp lệ Vv.. Các thao tác trên Cookies Thiết lập lại một cookie Có thế thiết lập giá trị NULL Thiết lập thời gian hết hạn Kiểm tra xem cookie có được chấp nhận Ví dụ về cookie Client Server Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT GET /anything.html GET /index2.html Cookie: CUSTOMER=WILE_E_COYOT Set-Cookie: SHIPPING=FEDEX; path=/foo GET /foo/index2.htmlCookie: CUSTOMER=WILE_E_COYOTE; SHIPPING=FEDEX Xác thực cơ bản HTTP xây dựng sẵn một cơ chế xác thực  GET /index.html HTTP/1.0  WWW-Authenticate .... realm:  GET ... Authorization J987kl8SAl  401 HTTP/1.0 Unauthorized user:password  (Base64)  J987kl8SAl MIME MEDIA TYPES HTTP gửi dạng file media sử dụng Content-type: Header Một số dạng file media tiêu biểu: text/plain, text/html image/gif, image/jpeg audio/basic, audio/wav model/vrml video/mpeg, video/quicktime application/*, application-specific dữ liệu không thuộc một dạng file media nào ở trên ví dụ application/octet-stream MIME-Multipurpose Internet Mail Extensions Các thư điện tử truyền thống chỉ sử dụng các ký tự ASCII, độ dài dòng và kích thước bị hạn chế. MIME là chuẩn Internet ra đời phục vụ cho thư điện tử: MIME mở rộng khả năng của thư điện tử gồm: Độ dài của dòng và của toàn bộ thư không bị hạn chế Nhiều đối tượng( ảnh, âm thanh, vv..) có thể được gửi kèm với thư	 Thư chỉ ra các file trên máy chủ khác và tự động lấy về Sử dụng bộ ký tự mở rộng phát triển từ US-ASCII Định dạng chữ với nhiều kiểu font khác nhau Thư có thể là các hình ảnh, các đoạn video, âm thanh vv.. 

File đính kèm:

  • pptBài giảng The HTTP Protocol và Web Server.ppt
Tài liệu liên quan