Tài liệu HTTP và Web server ppt

11 763 5
Tài liệu HTTP và Web server ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HTTP Web server Trang 1 1. HTTP Web server Web server làm nhiệm vụ gì ? Ban đầu nó chỉ phục vụ các tài liệu HTML đơn giản hình ảnh. Tuy nhiên sau này nó có thể làm nhiều hơn thế. Đầu tiên xét Web server ở mức độ cơ bản thì nó phục vụ các nội dung tĩnh. Nghĩa là khi Web server nhận 1 yêu cầu lấy trang Web sau từ Web browser : http://www.hcmuns.edu.vn/index.html thì nó sẽ ánh xạ (map) Uniform Resource Locator (URL) trên vào một file cục bộ trên máy server. Trong trường hợp này, file index.html ở một nơi nào đó trên hệ thống file của máy chủ. Máy chủ sau đó sẽ nạp file này từ đĩa đưa nó thông qua mạng đến Web browser của người dùng . Toàn bộ quá trình trao đổi giữa các trình duyệt web web server sử dụng giao thức : HTTP (Hypertext Transfer Protocol). Các file tài liệu HTML là một văn bản thô (raw text). Chúng chứa các thẻ định dạng (HTML tag). •Markup tags: <html> <head> <title> WWW </title> <head> <body> <p align=center> <a href=“http://www.hcmuns.edu.vn/”><b>Trường Đại Học Khoa Học Tự Nhiên TP.HCM </b></a> </b> </p> 1.User yêu cầu tài liệu Web, vd như index.html 2.Web server tìm tài liệu trên hệ thống fle 3.Web server lấy tìm tài liệu trên hệ thống fle 4.Web server trả tài liệu về cho browser HTTP Web server Trang 2 <body> </html> Trên cơ sở phục vụ nội dung tĩnh đơn giản này đã dẫn đến cái mà ngày nay chúng ta gọi là World Wide Web với nhiều thông tin phức tạp hơn được chuyển giữa Web server Web browser, trong đó quan trọng nhất có lẽ là nội dung động (dynamic content). Web động • Một trong các nội dung động (thường gọi tắt là Web động) cơ bản là các trang Web được tạo ra để đáp ứng các dữ liệu nhập vào của người dùng trực tiếp hay gián tiếp. • Cách cổ điển nhất được dùng phổ biến nhất cho việc tạo nội dung động là sử dụng Common Gateway Interface (CGI). Cụ thể là CGI định nghĩa một cách thức Web server chạy một chương trình một cách cục bộ trả kết quả thông qua Web server đến Web browser của người dùng đã yêu cầu nội dung động. • Web browser của người dùng chẳng bao giờ thực sự biết được nội dung của thông tin là động, bởi vì CGI về cơ bản là một giao thức mở rộng của Web Server. Hình vẽ sau minh hoạ khi Web browser yêu cầu một trang Web động phát sinh từ một chương trình CGI. Một giao thức mở rộng nữa của HTTP là HyperText Transmission Protocol, Secure (HTTPS) bảo mật các các thông tin “nhạy cảm” khi chuyển chúng xuyên qua mạng. Điều này cho phép phát triển thương mại điện tử (e-commerce). HTTP phương thức hoạt động? • HTTP là một giao thức cho phép Web browsers servers có thể giao tiếp với nhau. Nó chuẩn hoá các thao tác cơ bản mà một Web Server phải làm được. 1.User yêu cầu chương trình CGI phục vụ 1 trang động (webstore.cgi) 2.Web server gọi chương trình webstore.cgi gửi đến chương trình các tham số mà browser yêu cầu. 3.Web server gnhận các thông tin xuất ra từ chương trình webstore.cgi 4.Web server chuyển các thông tin xuất ra từ chương trình CGI về cho browser HTTP Web server Trang 3 • HTTP bắt đầu là 1 giao thức đơn giản Như với các giao thức chuẩn khác của Internet, thông tin điều khiển được truyền dưới dạng vãn bản thô thông qua kết nối TCP. Do đó, kết nối HTTP có thể thay thế bằng cách dùng lệnh "telnet" chuẩn. Ví dụ: > telnet www.extropia 80 GET /index.html HTTP/1.0 <- Có thể cần thêm kư tự xuống dòng • Port 80 mặc định dành cho Web server "lắng nghe" các kết nối đến. • Để đáp ứng lệnh HTTP GET , Web server trả về cho chúng ta trang "index.html" thông qua phiên làm việc telnet này, sau đó đóng kết nối chỉ ra kết thúc tài liệu. Ví dụ thông tin trả về <HTML> <HEAD> <TITLE>eXtropia Homepage</TITLE> [ ] </HEAD> </HTML> • Nhưng giao thức đơn giản yêu-cầu/đáp-ứng (request/response) này đã phát triển nhanh chóng được định nghĩa lại thành một giao thức phức tạp (phiên bản hiện tại HTTP/1.1) . Có lẽ điểm thay đổi lớn nhất trong HTTP/1.1 là nó hỗ trợ kết nối lâu dài (persistent connection). • Trong HTTP/1.0, một kết nối phải được thiết lập đến server cho mỗi đối tượng mà browser muốn download. Nhiều trang Web có rất nhiều hình ảnh, ngoài việc tải trang HTML cơ bản, browser phải lấy về một số lượng hình ảnh. Nhiều cái trong chúng thường là nhỏ hoặc chỉ đơn thuần là để trang trí cho phần còn lại của trang HTML • Thiết lập một kết nối cho mỗi hình ảnh thì thật phí phạm, vì sẽ có nhiều gói thông tin mạng sẽ được luân chuyển giữa Web browser Web server trước khi dữ liệu ảnh được truyền về. • Ngược lại, mở một kết nối TCP truyền tài liệu HTML sau đó mỗi hình ảnh sẽ tuyền nối tiếp theo như thế sẽ thuận tiện hơn quá trình thiết lập các kết nối TCP sẽ được giảm xuống. Một Web server phục vụ nội dung như thế nào ? • Ta có thể định nghĩa HTTP như là một giao thức cho browser giao tiếp với Web server. Cái mà một Web server cung cấp đó là nội dung. • Nội dung này phải được định nghĩa theo cách sao cho mà trình duyệt Web có thể tải về hiển thị nó một cách đúng đắn. Phương pháp chính cho việc quyết định làm thế nào để hiển thị nội dung là một kiểu định dạng MIME type header. Multipurpose Internet Mail Extension? HTTP Web server Trang 4 • MIME: định dạng này nói cho Web browser tài liệu đang được truyền đi thuộc tài liệu gì. Những kiểu định danh như vậy không giới hạn cho các trang HTML đơn giản hoặc hình ảnh. • Trên thực tế , hơn 370 kiểu MIME mặc định được phân phối với Apache Web server trong tập tin cấu hình mime.types . thậm chí danh sách này không thể đại diện cho toàn bộ không gian các kiểu MIME có thể ! Kiểu MIME được phân biệt bởi cú pháp type/subtype kết hợp với phần mở rộng của tập tin. Ví dụ về kiểu MIME trong file mime.types Chúng ta thấy rằng các file chứa nội dung video mpeg có phần mở rộng là mpeg, mpg, hoặc mpe. Một Web server chấp nhận kết nối như thế nào ? • Web servers được thiết kế xoay quanh các mục tiêu cơ bản sau: – Tiếp nhận các các kết nối mạng từ browsers. – Trích nội dung từ đĩa . – Chạy các chương trình CGI . – Truyền dữ liệu ngược lại cho clients – Chạy càng nhanh càng tốt. • Tuy nhiên, các mục tiêu trên không hoàn toàn tương thích lẫn nhau. Ví dụ, một Web server đơn giản phải theo các luật logic sau: – Chấp nhận kết nối – Sinh ra các nội dung tĩnh hoặc động cho browser – Đóng kết nối – Chấp nhận kết nối – Lập lại quá trình trên • Điều này sẽ chạy tốt đối với các Web sites đơn giản, nhưng server sẽ bắt đầu gặp phải vấn đề khi có nhiều người truy cập hoặc các trang web động phải tốn thời gian để tính toán cho ra kết quả. Ví dụ, nếu một chương trình CGI tốn 30 giây để sinh ra nội dung, trong thời gian đó Web server có thể sẽ không thể phục vụ các trang khác nữa . • Do vậy, mặc dù mô hình này chạy, nó vẫn cần phải thiết kế lại để phục vụ được nhiều người trong cùng 1 lúc. Web servers có xu hướng tận dụng ưu điểm của 2 phương pháp khác nhau để giải quyết vấn đề này: đa tiểu trình (multi-threading) hoặc đa tiến trình (multi-processing) hoặc các hệ lai giữa multi-processing multi-threading. Yêu cầu HTTP text/xml Xml video/mpeg Mpeg mpg mpe video/quicktime qt mov HTTP Web server Trang 5 Request = Simple-Request | Full-Request Simple-Request = "GET" SP Request-URI CRLF Request = Request-Line *(( general-header | request-header | entity-header ) CRLF) CRLF [ message-body ] Ghi chú: ♦ SP (Space): khoảng trắng ♦ CRLF (Carier Return - Line feed) : xuống dòng về đầu dòng HTTP URL dùng để định vị tài nguyên mạng qua giao thức HTTP. Đường dẫn HTTP URL có dạng như sau: http_URL = "http:" "//" host [ ":" port ] [ abs_path ] trong đó: host = <Tên FQDN của máy chủ hoặc địa chỉ IP ở dạng thập phân có chấm> port = số_nguyên trường hợp không có tham số port thì giá trị 80 được lấy mặc định.  Request-Line có dạng: Request-Line =Method SP Request-URI SP HTTP-Version CRLF  Method : phương thức được dùng. Phương thức có thể là một trong các giá trị Method = "GET" : lấy thông tin từ server theo đường dẫn mô tả trong Request-URI |HEAD : tương tự như GET nhưng không lấy thành phần message-body | "POST" : | "PUT" | "DELETE" Method = "OPTIONS" | "GET" ; Section 9.3 | "HEAD" ; Section 9.4 | "POST" ; Section 9.5 | "PUT" ; Section 9.6 | "DELETE" ; Section 9.7 | "TRACE" ; Section 9.8 | "CONNECT" ; Section 9.9 | extension-method extension-method = token Ví dụ về yêu cầu HTTP: • GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1 HTTP Web server Trang 6 • GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org Protocol Domain name Path http:// www.hcmu.edu.vn /vanphong/dtao.htm https:// (secure HTTP) www.company.com /catalog/orders.htm gopher:// gopher.college.edu /research/astronomy/index.htm ftp:// orion.bureau.gov /stars/alpha quadrant/startlist.txt Đáp ứng Sau khi nhận thông dịch yêu cầu, server đáp ứng với một thông điệp HTTP. Response = Status-Line ; Section 6.1 *(( general-header ; Section 4.5 | response-header ; Section 6.2 | entity-header ) CRLF) ; Section 7.1 CRLF [ message-body ] ; Section 7.2 Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF Mã trạng thái ý nghĩa 1xx: Thông báo – đã nhận yêu cầu, tiếp tục xử lý 2xx: Thành công – Hành động đã nhận thành công yêu cầu từ user, hiểu chấp nhận yêu cầu 3xx: Redirection –Phải tốn thêm các động tác khác mới có thể hoàn tất được yêu cầu 4xx: Client Error – Yêu cầu gửi cú pháp của câu request bị sai. Hành động không thể tiếp tục 5xx: Server Error - server không thể đáp ứng đầy đủ yêu cầu đó Status-Code = "100" ; Tiếp tục | "200" ; OK | "201" ; Đã tạo | "202" ; Chấp nhận | "203" ; Thông tin không được kiểm tra xác thực | "204" ; Không có nội dung | "301" ; Nội dung đã chuyển sang vị trí khác Response Header Fields (tt) | "400" ; Yêu cầu không phù hợp | "401" ; Không có quyền | "403" ; Cấm truy cập | "404" ; Không tìm thấy | "405" ; Không cho phép phương thức này HTTP Web server Trang 7 | "408" ; Yêu cầu bị quá thời gian Response Header Fields (tt) | "500" ; Lỗi server | "501" ; Không hổ trợ | "502" ; Bad Gateway | "503" ; Dịch vụ không sẳn sàng | "504" ; Gateway Time-out | "505" ; phiên bản HTTP không được hổ trợ Ta chọn nền Web Server nào ? • Thông thường,một tiến trình server phải làm 2 việc: lắng nghe tiếp nhận kết nối TCP khi chúng được thiết lập. Nó phải lựa chọn vừa phải để đáp ứng các kết nối đồng thời vừa phải ngãn cản hiệu quả bất cứ kết nối mới nào cho đến cái hiện tại đã được phục vụ đã đóng. • Trên thực tế việc chạy mỗi tiến trình Web server khi có yêu cầu thì giá phải trả cho hiệu suất rất đắt trên máy chủ, hoàn toàn không thực tế trong các mô hình Web site hiện tại. Ngày nay, hầu hết các Web sites chạy Web server có thể hỗ trợ cả multi- processing hoặc multi-threading, do đó nó có thể xử lý tải lớn hơn nhiều. • Không cần biết Web server của bạn tốt hay mạnh đến đâu, thì vẫn luôn luôn sẽ bị giới hạn bởi số lượng trang web phục vụ trong 1 khoảng thời gian cho trước nếu trang Web của bạn sử dụng nội dung động thì sẽ làm tãng thời gian phục vụ làm nặng tải cho Web server.Nội dung động thường dựa việc sử dụng các database nặng nề hoặc xử lý các code chương trình sẽ gây tốn rất nhiều tài nguyên trên máy chủ. Cân bằng tải - Load balancing • Có nhiều cách để phân tải cho server. Cách đơn giản nhất là chia nội dung ra trên nhiều máy. Ví dụ , bạn có thể đặt tất cả các tập tin HTML tĩnh trên một máy , tất cả các hình ảnh trên một máy khác, cái thứ ba chạy tất cả CGI scripts. Tất nhiên , cách phân tải này rất thô thiển phụ thuộc vào nội dung của site, hiệu quả mang lại rất ít. • Ví dụ , một CGI script đơn lẻ sẽ gây nghẽn mạch cho Web site, ta hãy dời nó sang một server khác chỉ chứa HTML, hình ảnh các CGI scripts khác tiếp tục chạy. Tuy nhiên, tải nặng của CGI script sẽ vẫn bị hiện tượng “cổ chai” cho các người dùng muốn tận dụng tài nguyên. Do vậy, phân tải trên Web server cần một chút tinh tế để xác định được vấn đề là tải đang nặng ở chỗ nào để cấu hình cho thích hợp. • Một số nguyên nhân phải được xác định rõ trước khi quyết định giải pháp phân tải. Đặc biệt, kiểm tra tải truy cập của Web là yếu tố quyết định cho việc tinh chỉnh hiệu suất làm việc quá trình phân tải cho server. • Các phương pháp phân tải giữa các Web servers: • Phân tải DNS (round-robin type) • Phân tải phần cứng • Phân tải phần mềm • Proxy ngược • Nội dung được phát tán qua nhiều hosts HTTP Web server Trang 8 Vấn đề an toàn Web site? • Có hai mức khác nhau về vấn đề an ninh cho Web server. Trên mức độ là an toàn dòng dữ liệu do đó nó không thể được xem hay sữa chữa bởi kẻ thứ ba có ác tâm. Trên mức khác là an toàn về nội dung – xác nhận quyền hạn của người được xem thay đổi nội dung đó. • Các đường dẫn URL bắt đầu bởi “https” sử dụng giải thuật SSL (Secure Socket Layer) để tạo ra một liên kết dạng luồng bảo mật mã hoá thông tin khi đi qua luồng. • Tuy nhiên, bạn có thể hỏi, cuối cùng SSL bảo vệ cái gì ? Thực sự chỉ có hai lựa chọn : SSL bảo vệ dữ liệu được gửi lên lên Web server lẫn dữ liệu “nhạy cảm” nhận về từ Web server. Vấn đề an toàn Web site? • Việc cho phép người dùng gửi dữ liệu bí mật lên Web server có thể được tìm thấy trong một ứng dụng thông thường trên Web. Trong các ứng dụng đó, người dùng thường được cho 1 lựa chọn phải cho biết thông tin về thẻ tín dụng để hoàn tất đơn đặt hàng. Mặc dù Web server không hiển thị số thẻ tín dụng lên Web browser, nhưng việc truyển các thông tin này phải được xếp vào loại là thông tin bí mật. Do đó, có một số cách để bảo vệ nội dung trên Web server. • Web servers thường hỗ trợ việc xác thực dùng kỹ thuật gọi là basic authorization. Trong kỹ thuật này, Web server gửi một header đặc biệt tới Web browser của người dùng hỏi username/password. • Web servers thường quản lý rất đơn giản việc xác định quyền xem dữ liệu . Hầu hết Web servers chỉ đơn thuần cho phép việc ngãn cản việc đọc thư mục files bởi group hay user. Các tuỳ chọn phức tạp hơn cho phép phát hiện người dùng nào có quyền xem files thường phải được lập trình bên trong ứng dụng Web hoặc thông qua việc gán quyền trên hệ thống file của hệ điều hành đang chạy Web server. Sự khác nhau giữa Web Server Server ứng dụng? • Chúng ta đã nói về Web server, thế còn server ứng dụng ? Sự khác nhau là hoàn toàn rõ ràng. Web server chỉ phục vụ trang HTML các hình ảnh cho việc xem trên browser. Trong khi một ứng dụng có thể tồn tại trên Web server, ứng dụng đó thường bị giới hạn bởi việc sinh ra trang HTML dữ liệu hình ảnh. • Một server ứng dụng thông thường chứa các ứng dụng doanh nghiệp thô không chứa CSDL hay giao diện người dùng. CSDL ứng dụng nằm trên database server, còn giao diện người dùng có thể được phát sinh hiển thị ở dạng trang Web. • Trong nhiều trường hợp, server ứng dụng phục vụ như là một tầng trung gian (middle-tier) của mô hình lập trình three-tier. Hình dưới đây minh hoạ một mô hình lập trình three-tier. HTTP Web server Trang 9 • Nói cách khác , server ứng dụng nằm trong tầng giữa của chương trình khác và phục vụ xử lý dữ liệu cho các chương trình đó. Thông thường, trong trường hợp lập trình three-tier , hai lớp phân biệt bởi server ứng dụng là lớp giao diện người dùng lớp Database/Data Storage . • Chú ý rằng khái niệm server ứng dụng không được lầm lẫn với ứng dụng Web nằm trên Web server. Ứng dụng Web thông thường cũng chỉ chứa các ứng dụng logic, nhưng khi chúng phục vụ chính cho việc sinh ra các trang HTML cho Web browser, chúng cũng có giao diện người dùng thường không bao giờ trú ngụ trên một server ứng dụng thuần. Data Marshalling • Data marshalling là một thuật ngữ dùng để chỉ ra giao thức ứng dụng nói chuyện với nhau. Tương tự như làm thế nào Web servers bọc nội dung human-readable trong HTML để làm cho nó “dễ đọc”, nhiều server ứng dụng bọc nội dung application-readable bên trong các tags cho phép dữ liệu được thông dịch bởi ứng dụng nhận. Các "tags" này đã tạo nên một chuẩn xung quanh server ứng dụng. • Ví dụ , CORBA servers dùng một giao thức gọi IIOP (Internet Inter-Orb Protocol) để truyền dữ liệu giữa các application objects. Gần đây hơn, XML (Extensible Markup Language) đã làm data marshalling càng dễ dàng hơn trong việc tạo các tags cho riêng mình rất giống trong cú pháp của HTML ngoại trừ việc chúng mô tả dữ liệu hơn là làm sao nội dung được hiển thị trong browser ( xem thêm tại Web site http://www.xml.org ) • Trong quá khứ, hầu hết các server ứng dụng như thế nói chuyện với nhau bằng ngôn ngữ giao thức Data marshalling như là IIOP(Internet Inter-Orb Protocol) cho CORBA, Java's object serialization cho RMI, DCOM cho việc kích hoạt các Microsoft ActiveX từ xa. Tuy nhiên , sự phát triển của XML (extensible markup language) như là một ngôn ngữ internet thân thiện cho data marshalling đã làm mờ đi các ranh giới . • Web Servers được tinh chỉnh thành server ứng dụng có thể phục vụ dữ liệu XML bên cạnh dữ liệu HTML. • Gần đây tất cả Java Enterprise Bean servers dựa trên kiến trúc Java của Sun Microsystems đều quảng cáo khả năng đồng thời phục vụ Java Servlets Java Server Pages lĩnh vực truyền thống của Web servers. HTTP Web server Trang 10 • Thông thường, server ứng dụng được định hướng để xử lý dữ liệu dùng đối tượng hay code để hiện thực các logic ứng dụng. Trong khi đó Web servers thiên về việc gửi dữ liệu. Một thực tế là có thể đặt các thành phần của ứng dụng ngay trên Web server, tuy nhiên khi gặp vấn đề về hiệu suất thi hành thì nên tách biệt các thành phần ứng dụng trên server ứng dụng dành riêng. Appication Server Web Server Hiện nay có nhiều kỹ thuật khác nhau cho phép một Web server phục vụ nội dung động. Các kỹ thuật ứng dụng Web chủ yếu tập trung vào việc phân phát các tài liệu HTML (được phát sinh tự động) đến Web browser của người dùng khi họ tương tác với Web site. Một server ứng dụng thường tuý không định dạng dữ liệu cho người dùng mà nó hoạt động như một “cỗ máy” (engine) xử lý dữ liệu cho các chương trình khác. Các chương trình này sẽ đọc dữ liệu đã được xử lý diễn dịch lại cho phía người dùng. Chúng ta thử khảo sát một số kỹ thuật sau: Web Server ứng dụng Web • CGI - Common Gateway Interface : các chương trình CGI phục vụ nội dung động dựa trên thông tin chuyển đến cho chúng. Các chương trình CGI có thể viết bằng ngôn ngữ bất kỳ như Perl, C, Python TCL, trong đó chủ yếu là Perl. • Microsoft ASP - Active Server Page : ASP nhúng môt trình thông dịch (interpreter) VBScript vào Web server Microsoft Internet Information Server. • Java Servlets/JSP - Java Server Pages : kết nối máy ảo Java (JVM - Java Virtual Machine) với Web server. JSP có ưu điểm hơn ASP ở chổ nó khả năng cache trên JVM sau lần chạy đầu tiên. • PHP (Hypertext Preprocessor): tương tự như ASP JSP, có một tập các thẻ mã chương trình đặt bên cạnh các thẻ HTML. server-side, cross-platform, ngôn ngữ scripting nhúng HTML. PHP là một dự án của Apache Software Foundation. • Mod_perl : nhúng trình thông dịch Perl vào Web server Apache cho phép tăng tốc độ xử lý các Perl script cache các script để tăng hiệu suất hơn nữa. Các Web server phổ biến  Apache server (http://www.apache.org) hệ điều hành Unix, Windows 95/98, Windows NT.  CERN server (http://www.w3c.org/Daemon/Status.html) hệ điều hành : Unix, VMS.  MacHTTP (http://www.w3c.org/MacHTTP/status.html) : hệ điều hành Macintosh.  Website (http://clubweb.ora.com) : hệ điều hành server Windows NT / Windows 95 của O'Reilly.  Domino Go Webserver (http://www.lotus.com) hệ điều hành Unix, Windows NT, Windows 95/98, OS/2.  Lotus Domino (http://www.lotus.com) hệ điều hành Windows NT, Windows 95/98, Unix, OS/2, Novell Netware.  Microsoft IIS v4.0/Microsoft IIS v5.0 (http://www.microsoft.com ) : hệ điều hành Windows NT/2000. [...].. .HTTP Web server   Trang 11 Enterprise for NetWare (http: //www.novell.com ): hệ điều hành Novell Netware 4.11, IntranetWare 4.11 Netscape Enterprise (http: //home.netscape.com ): hệ điều hành HPUX 11.0, Solaris 2.6/7.0, IBM AIX 4.2.1, Compaq Tru64 Unix 4.0d, SGI IRIX 6.5, NT 4 SP4 . index.html 2 .Web server tìm tài liệu trên hệ thống fle 3 .Web server lấy tìm tài liệu trên hệ thống fle 4 .Web server trả tài liệu về cho browser HTTP và Web server. HTTP và Web server Trang 1 1. HTTP và Web server Web server làm nhiệm vụ gì ? Ban đầu nó chỉ phục vụ các tài liệu HTML đơn giản và hình ảnh.

Ngày đăng: 25/01/2014, 15:20

Hình ảnh liên quan

Ban đầu nó chỉ phục vụ các tài liệu HTML đơn giản và hình ảnh. Tuy nhiên sau này nó có thể làm nhiều hơn thế. - Tài liệu HTTP và Web server ppt

an.

đầu nó chỉ phục vụ các tài liệu HTML đơn giản và hình ảnh. Tuy nhiên sau này nó có thể làm nhiều hơn thế Xem tại trang 1 của tài liệu.

Từ khóa liên quan

Mục lục

  • Web động

    • Một trong các nội dung động (thường gọi tắt là Web động) cơ bản là các trang Web được tạo ra để đáp ứng các dữ liệu nhập vào của người dùng trực tiếp hay gián tiếp.

    • Cách cổ điển nhất và được dùng phổ biến nhất cho việc tạo nội dung động là sử dụng Common Gateway Interface (CGI). Cụ thể là CGI định nghĩa một cách thức Web server chạy một chương trình một cách cục bộ và trả kết quả thông qua Web server đến Web browser của người dùng đã yêu cầu nội dung động.

    • Web browser của người dùng chẳng bao giờ thực sự biết được nội dung của thông tin là động, bởi vì CGI về cơ bản là một giao thức mở rộng của Web Server. Hình vẽ sau minh hoạ khi Web browser yêu cầu một trang Web động phát sinh từ một chương trình CGI.

    • HTTP và phương thức hoạt động?

      • HTTP là một giao thức cho phép Web browsers và servers có thể giao tiếp với nhau. Nó chuẩn hoá các thao tác cơ bản mà một Web Server phải làm được.

      • HTTP bắt đầu là 1 giao thức đơn giản Như với các giao thức chuẩn khác của Internet, thông tin điều khiển được truyền dưới dạng vãn bản thô thông qua kết nối TCP. Do đó, kết nối HTTP có thể thay thế bằng cách dùng lệnh "telnet" chuẩn.

        • Ví dụ:

        • Port 80 mặc định dành cho Web server "lắng nghe" các kết nối đến.

        • Để đáp ứng lệnh HTTP GET , Web server trả về cho chúng ta trang "index.html" thông qua phiên làm việc telnet này, và sau đó đóng kết nối chỉ ra kết thúc tài liệu.

          • Ví dụ thông tin trả về

          • Nhưng giao thức đơn giản yêu-cầu/đáp-ứng (request/response) này đã phát triển nhanh chóng và được định nghĩa lại thành một giao thức phức tạp (phiên bản hiện tại HTTP/1.1) . Có lẽ điểm thay đổi lớn nhất trong HTTP/1.1 là nó hỗ trợ kết nối lâu dài (persistent connection).

          • Trong HTTP/1.0, một kết nối phải được thiết lập đến server cho mỗi đối tượng mà browser muốn download. Nhiều trang Web có rất nhiều hình ảnh, ngoài việc tải trang HTML cơ bản, browser phải lấy về một số lượng hình ảnh. Nhiều cái trong chúng thường là nhỏ hoặc chỉ đơn thuần là để trang trí cho phần còn lại của trang HTML

          • Thiết lập một kết nối cho mỗi hình ảnh thì thật phí phạm, vì sẽ có nhiều gói thông tin mạng sẽ được luân chuyển giữa Web browser và Web server trước khi dữ liệu ảnh được truyền về.

          • Ngược lại, mở một kết nối TCP truyền tài liệu HTML và sau đó mỗi hình ảnh sẽ tuyền nối tiếp theo như thế sẽ thuận tiện hơn và quá trình thiết lập các kết nối TCP sẽ được giảm xuống.

          • Một Web server phục vụ nội dung như thế nào ?

            • Ta có thể định nghĩa HTTP như là một giao thức cho browser giao tiếp với Web server. Cái mà một Web server cung cấp đó là nội dung.

            • Nội dung này phải được định nghĩa theo cách sao cho mà trình duyệt Web có thể tải về và hiển thị nó một cách đúng đắn. Phương pháp chính cho việc quyết định làm thế nào để hiển thị nội dung là một kiểu định dạng MIME type header.

            • Multipurpose Internet Mail Extension?

              • MIME: định dạng này nói cho Web browser tài liệu đang được truyền đi thuộc tài liệu gì. Những kiểu định danh như vậy không giới hạn cho các trang HTML đơn giản hoặc hình ảnh.

              • Trên thực tế , hơn 370 kiểu MIME mặc định được phân phối với Apache Web server trong tập tin cấu hình mime.types . Và thậm chí danh sách này không thể đại diện cho toàn bộ không gian các kiểu MIME có thể ! Kiểu MIME được phân biệt bởi cú pháp type/subtype kết hợp với phần mở rộng của tập tin.

              • Một Web server chấp nhận kết nối như thế nào ?

                • Web servers được thiết kế xoay quanh các mục tiêu cơ bản sau:

                  • Tiếp nhận các các kết nối mạng từ browsers.

                  • Trích nội dung từ đĩa .

                  • Chạy các chương trình CGI .

                  • Truyền dữ liệu ngược lại cho clients

                  • Chạy càng nhanh càng tốt.

Tài liệu cùng người dùng

Tài liệu liên quan