Tiểu Luận Tổng quan về HTTP

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Mai Kul, 28/11/13.

  1. Mai Kul

    Mai Kul New Member

    Bài viết:
    1,299
    Được thích:
    0
    Điểm thành tích:
    0
    Xu:
    0Xu
    BÀI TẬP LỚN
    MÔN: MẠNG MÁY TÍNH
    TÌM HIỂU GIAO THỨC HTTP
    Giáo viên hướng dẫn: TS. Ngô Quỳnh Thu
    Sinh viên thực hiện: Bùi Thái Bình, SHSV:20114628
    Hà Nội - 2013
    Lời nói đầu!
    2013
    ĐẠI HỌC BÁCH KHOA HÀ NÔỊ
    VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
    2013
    2
    Hình 1: URL bắt đầu với chương trình HTTP và các cá nhân nhãn hiệu tên miền.
    Hypertext Transfer Protocol ( HTTP ) là một giao thức ứng dụng cho việc phân phối, hợp
    tác, hypermedia hệ thống thông tin. HTTP là nền tảng của truyền thông dữ liệu cho World Wide
    Web .
    Siêu văn bản là văn bản có cấu trúc sử dụng liên kết hợp lý ( siêu liên kết ) giữa các nút có chứa
    văn bản. HTTP là giao thức để trao đổi, truyền siêu văn bản.
    Sự phát triển các tiêu chuẩn của HTTP được điều phối bởi Internet Engineering Task
    Force (IETF) và World Wide Web Consortium (W3C), mà đỉnh cao là công bố một loạt các yêu
    cầu cho ý kiến (RFC), đáng chú ý nhất RFC 2616 (tháng 6 năm 1999), trong đó xác định
    HTTP/1.1, phiên bản của HTTP sử dụng phổ biến.
    Với đề tài tìm hiểu giao thức HTTP, tài liệu này mô tả khá chi tiết về giao thức HTTP, bao
    gồm lịch sử ,quá trình phát triển, đặc điểm về HHTTP, nguyên lý hoạt động, mô phỏng , tài liệu
    vẫn không tránh khỏi được các thiếu sót, em mong nhận được ý kiến của cô giáo để rút kinh
    nghiệm và nội dung của tài liệu được hoàn thành đầy đủ hơn . Em xin cảm ơn!
    Tài liệu tham khảo
     W3C chi tiết kỹ thuật HTTP tại http://www.w3.org/standards/techs/http .
     RFC 2616 "Hypertext Transfer Protocol HTTP/1.1", 1999
    @ http://www.ietf.org/rfc/rfc2616.txt .
     RFC 1945 "Hypertext Transfer Protocol HTTP/1.0", 1996
    @ http://www.ietf.org/rfc/rfc1945.txt .
     http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Persistent_connections
     http://openspacevn.blogspot.com/2013/04/http-so-luoc-giao-thuc-http-http.html
     http://www.faqs.org/rfcs/rfc2616.html
    3
    Mục Lục
    Lời nói đầu .1
    Tài liệu tham khảo 2
    I). Tổng quan và lịch sử phát triển HTTP 4.
    II). Đặc điểm giao thức HTTP . 6
    1) Mục đích sử dụng 6
    2) Sử dụng HTTP trong khuôn khổ web và thư viện . 7
    3) Thông điệp HTTP . 9
    3.1) Cấu trúc thông điệp .9
    3.2) Các trường trong HTTP header 11
    4 .) URI – Uniform Resource Identifiers 12
    5 .) Uniform Resource Locator (URL) 1 2
    6 ) HTTP Nghị định thư . 1 3
    7 ) HTTP qua TCP / IP . 1 4
    III) Ho ạ t đ ộ ng giao th ứ c HTTP . 16
    1) Web Page Retrieval – GET 16
    2) Head 18
    3) Opitions 1 8
    4) Trace 19
    5) Post . 20
    6) Connect 21
    7) Put 23
    8) Delete .24
    IV) Mô ph ỏ ng HTTP v ớ i packet tracer . 2 4
    1) Giới thiệu packet tracer . 24
    2) Hướng dẫn cài đặt packet tracer 5.0 29
    3) Giao diện chính của Packet tracer 5.0 31
    4) Mô phỏng .38
    4
    I. Tổng quan và lịch sử phát triển giao thức HTTP.
     WEB
    - Internet (hoặc Web) là một hệ thống thông tin khách hàng / máy chủ phân phối lớn như mô
    tả trong sơ đồ sau đây.
    - Nhiều ứng dụng chạy đồng thời trên các trang web, chẳng hạn như trình duyệt web / duyệt
    web, e-mail, chuyển tập tin, âm thanh và video, và như vậy. Để giao tiếp thích hợp để diễn
    ra giữa khách hàng và máy chủ, các ứng dụng này phải đồng ý trên một giao thức cấp ứng
    dụng cụ thể như HTTP, FTP, SMTP, POP, và v v
     HyperText Transfer Protocol (HTTP)
    - HTTP (Hypertext Transfer Protocol) có lẽ là giao thức ứng dụng phổ biến nhất được sử dụng
    trong Internet (hoặc trang web).
    - HTTP là một yêu cầu đáp ứng client-server bất đối xứng giao thức như minh họa. Một
    khách hàng HTTP gửi một thông điệp yêu cầu tới một máy chủ HTTP. Máy chủ, lần lượt,
    trả về một thông điệp trả lời. Nói cách khác, HTTP là một giao thức kéo , khách
    hàng kéo thông tin từ máy chủ (thay vì máymáy chủ đẩy thông tin xuống cho khách hàng).
    - HTTP là một giao thức không quốc tịch. Nói cách khác, yêu cầu hiện tại không biết những gì
    đã được thực hiện trong các yêu cầu trước đó.
    - HTTP cho phép đàm phán của các kiểu dữ liệu và biểu diễn, để cho phép các hệ thống được
    xây dựng độc lập với dữ liệu được chuyển giao.
    5
    - Trích dẫn từ RFC2616:. "Các Hypertext Transfer Protocol (HTTP) là một giao thức cấp ứng
    dụng cho việc phân phối, hợp tác, hệ thống thông tin hypermedia Đó là một chung chung, không
    quốc tịch, giao thức có thể được sử dụng cho nhiều nhiệm vụ ngoài việc sử dụng cho siêu văn
    bản, chẳng hạn như các máy chủ tên và hệ thống quản lý đối tượng phân phối, thông qua phần
    mở rộng của phương pháp yêu cầu của nó, mã lỗi và các tiêu đề. "
    - Hypertext Transfer protocol (HTTP) là một ứng dụng giao thức cung cấp phân phối, hợp tác,
    siêu truyền thông tin hệ thống . Giao thức có thể sử dụng chung cho nhiều nhiệm vụ ngoài việc
    sử dụng cho siêu văn bản , chẳng hạn như các máy chủ tên và phân phối các hệ thống quản lý
    đối tượng thông qua phần mở rộng của nó, phương pháp yêu cầu, mã lỗi và các tiêu đề . HTTP
    đã được sử dụng bởi các thông tin web toàn cầu word-wide web chủ động từ năm 1990. Đặc
    điểm kĩ thuât này định ghĩa các giao thức được gọi là “HTTP/ 1.1”, và là một cập nhật cho RFC
    2068.
    - Thuật ngữ siêu văn bản được đặt ra bởi Ted Nelson người đã lần lượt được lấy cảm hứng
    từ Vannevar Bush 's vi dựa trên " memex ". Tim Berners-Lee lần đầu tiên đề xuất
    "WorldWideWeb" dự án - bây giờ được gọi là World Wide Web . Berners-Lee và nhóm của ông
    đã được công nhận với phát minh ra HTTP ban đầu cùng với HTML và công nghệ liên quan cho
    một máy chủ web và trình duyệt web dựa trên văn bản. Phiên bản đầu tiên của giao thức chỉ có
    mộtphương pháp , cụ thể là GET, mà sẽ yêu cầu một trang từ một máy chủ. Những phản ứng từ
    máy chủ là luôn luôn một trang HTML.
    * lịch sử phát triển HTTP
    - Từ quan niệm ban đầu của nó, như một giao thức với phương pháp duy nhất (GET) và trở
    về chỉ các trang HTML, giao thức HTTP đã trải qua nhiều phiên bản. Phiên bản tài liệu đầu tiên
    là HTTP /0.9 vào năm 1991, tương ứng với phiên bản gốc. Rất đơn giản, nó có khả năng tìm
    kiếm thô sơ qua HTML <isindex> phần tử và phần mở rộng của URL bằng cách sử dụng „ ? ‟
    nhân vật.
    - Sau đó, vào năm 1992, một phiên bản được công bố đã trở thành, với một số thay đổi nhỏ,
    HTTP/1.0 (hoàn thành trong RFC 1945 Tháng 5 năm 1996). Một cải tiến lớn so với phiên bản
    trước đó là khả năng truyền tải tập tin định dạng khác nhau, như hình ảnh, video, kịch bản, tài
    liệu CSS, và như vậy, thay vì tập tin HTML chỉ: này là đạt được bằng cách sử dụng các loại
    MIME kết hợp với nội dung- đi: tiêu đề.
    - Năm 1995, IETF bắt đầu phát triển một phiên bản mới của HTTP, mà sẽ trở thành
    HTTP/1.1. Nó nhanh chóng lan vào sử dụng rộng rãi, và nó đã được chính thức tiêu chuẩn vào
    năm 1997 trong RFC 2068 , với các bản sửa lỗi nhỏ trong RFC 2616 hai năm sau đó.
    - HTTP/1.1 mang lại khả năng tái sử dụng các kết nối thành lập cho các yêu cầu tiếp theo, giúp
    cải thiện hiệu suất của các giao thức bằng cách giảm độ trễ giữa chúng, điều này đặc biệt hữu ích
    với các tài liệu HTML phức tạp mà cần phải lấy một số tác phẩm tiếp theo, như hình ảnh hay
    phong cách trang. Nó cũng mang lại các Host: tiêu đề, cho phép một máy chủ duy nhất, nghe
    trên một cổng cụ thể, để nhận được yêu cầu cho một số trang web, điều này mở đường cho
    colocating nhiều trang web trên một máy chủ duy nhất, giúp giảm thiểu chi phí lưu trữ.
    6
    Kể từ đó, các giao thức HTTP phát triển mới bằng cách thêm tiêu đề , xác định những hành vi
    mới mà không cần phải thay đổi cơ bản các giao thức. Tiêu đề không biết chỉ đơn giản là bỏ qua
    các máy chủ hoặc khách hàng.
    HTTP/1.1 hiện đang được điều chỉnh bởi các Nhóm công tác HTTPbis IETF .
    II) Đặc điểm giao thức HTTP
    1. Mục đích sử dụng.
    - Hypertext Transfer Protocol (HTTP) là một ứng dụng cấp giao thức phân phối, hợp tác,
    siêu truyền thông tin hệ thống. HTTP đã được sử dụng bởi World-Wide Web toàn cầu thông
    tin chủ động từ năm 1990. Phiên bản đầu tiên của HTTP, gọi là HTTP/0.9, là một giao thức
    đơn giản để chuyển dữ liệu thông qua mạng Internet. HTTP/1.0, được định nghĩa bởi RFC
    1945, cải thiện giao thức bằng cách cho phép các tin nhắn đến được trong định dạng MIME -như bài viết, có chứa metainformation về các dữ liệu chuyển giao và bổ theo yêu cầu / đáp
    ứng ngữ nghĩa. Tuy nhiên, không HTTP/1.0 không đủ đi vào xem xét những ảnh hưởng của
    thứ bậc proxy, bộ nhớ đệm, nhu cầu kết nối liên tục. Ngoài ra, sự gia tăng của không đầy
    đủ, thực hiện ứng dụng gọi mình là "HTTP/1.0" đã đòi hỏi phải có giao thức phiên bản thay
    đổi để cho hai ứng dụng giao tiếp để xác định khả năng thực sự của nhau.
    - Đặc điểm kĩ thuật nay định nghĩa các giao thức được gọi là “HTTP/1.1”. Giao thức này
    bao gồm các yêu cầu nghiêm ngặt hơn trongHTTP/1.0 đặt hàng để đảm bảo thực hiện đáng
    tin cậy của các tính năng của nó.
    - Hệ thống thông tin thực tế đòi hỏi phát triển chức năng hơn so với đơn giản thu hồi, bao
    gồm tìm kiếm, cập nhật front-end, và chú thích.HTTP cho phép một thiết lập mở các phương
    pháp và các tiêu đề đó chỉ ra mục đích cảu yêu cầu. Nó xây dựng trên nguyên tắc của tài liệu
    tham khảo được cung cấp bởi Uniform Resource Identifer (URI), như một địa điểm (URL)
    hoặc tên là (URN), cho thấy nguồn tài nguyên mà một phương pháp được áp dụng. Tin nhắn
    được thông qua trong một định dạng tương tự như được sử dụng bởi Internet mail theo quy
    định của đa năng Internet Mail Extensions (MIME)
    - HTTP cũng được sửu dụng như một giao thức chung cho giao thức đại lý người dùng và
    các proxy / cổng với các hệ thống khác trên Internet, bao gồm cả những hỗ trợ SMTP,
    NNTP, FTP, Gopher, và WAIS giao thức. Bằng cách này, HTTP cho phép cơ bản
    Hypermedia truy cập vào nguồn lực sẵn co từ các ứng dụng đa dạng.
    7
    2.) Sử dụng HTTP trong khuôn khổ web và thư viện.
    Bây giờ chúng ta đã xem xét các yêu cầu / đáp ứng thông điệp, đó là thời gian mà chúng ta
    học cách thư viện và các khuôn khổ lộ nó trong hình thức của một API. Chúng tôi sẽ sử
    dụng ExpressJS cho Node , Ruby on Rails và jQuery Ajax như ví dụ của chúng tôi.
    ExpressJS
    Nếu bạn đang xây dựng các máy chủ web trong NodeJS, rất có thể là cao mà bạn đã xem
    xét ExpressJS .ExpressJS ban đầu được lấy cảm hứng từ một kiến trúc Web Ruby, được gọi là
    Sinatra. Theo dự kiến, các API cũng đều bị ảnh hưởng.
    Bởi vì chúng ta đang đối phó với một khung phía máy chủ, có hai nhiệm vụ chính khi giao dịch
    với những thông điệp HTTP:
     Đọc đoạn URL và tiêu đề yêu cầu.
     Viết tiêu đề phản ứng và cơ thể
    Sự hiểu biết HTTP là rất quan trọng để có một, đơn giản và yên tĩnh giao diện sạch sẽ giữa hai
    thiết bị đầu cuối.
    ExpressJS cung cấp một API đơn giản để thực hiện điều đó.Chúng tôi sẽ không bao gồm các chi
    tiết của các API. Thay vào đó, chúng tôi sẽ cung cấp liên kết đến các tài liệu hướng dẫn chi tiết
    về ExpressJS hướng dẫn. Các phương pháp trong các API là tự giải thích trong hầu hết trường
    hợp. Một mẫu của các API liên quan đến yêu cầu dưới đây:
     req.body : có được cơ thể yêu cầu.
     req.query : có được đoạn truy vấn của URL.
     req.originalUrl
     req.host : đọc chủ lĩnh vực tiêu đề.
     req.accepts : đọc có thể chấp nhận các loại MIME trên các mặt hàng.
     req.get HOẶC req.header : đọc bất kỳ lĩnh vực tiêu đề thông qua như là đối số.
    Trên đường ra cho khách hàng, ExpressJS cung cấp các API phản ứng sau đây:
     res.status : thiết lập một mã trạng thái rõ ràng.
     res.set : thiết lập một phản ứng tiêu đề cụ thể.
     res.send : gửi HTML, JSON hay một octet-stream.
     res.sendFile : chuyển một tập tin cho khách hàng.
     res.render : làm cho một cái nhìn rõ ràng mẫu.
     res.redirect : chuyển hướng đến một con đường khác nhau. Tốc tự động thêm mã chuyển hướng
    mặc định của 302.
    Ruby on Rails
    Các yêu cầu và thông điệp trả lời chủ yếu là giống nhau, ngoại trừ dòng đầu tiên và tiêu đề thư.
    Trong Rails, các ActionController và ActionDispatch module cung cấp các API để xử lý yêu cầu
    và thông điệp trả lời.
    ActionController cung cấp một API mức cao để đọc các URL yêu cầu, làm cho sản lượng và
    chuyển hướng đến một điểm cuối khác nhau. Một điểm kết thúc (hay còn gọi là đường) được xử
    lý như một phương pháp hành động. Hầu hết các thông tin cần thiết trong bối cảnh một hành
    động phương pháp được cung cấp thông qua các yêu cầu , phản ứng vàparams đối tượng.
    params : cho phép truy cập đến các thông số URL và dữ liệu POST.
     yêu cầu : chứa thông tin về khách hàng, tiêu đề và URL.
     phản ứng : được sử dụng để đặt tiêu đề và mã trạng thái.
    8
     làm : làm cho xem bằng cách mở rộng các mẫu.
     redirect_to : chuyển hướng đến một hành động phương pháp hoặc URL khác nhau.
    ActionDispatch cung cấp truy cập hạt mịn để yêu cầu / đáp ứng thông điệp, thông
    qua ActionDispatch :: Yêu cầu và ActionDispatch :: đáp ứng các lớp học. Nó cho thấy một tập
    hợp các phương pháp truy vấn để kiểm tra các loại yêu cầu ( được? () , bài? () , người đứng đầu?
    () , địa phương? () ).Tiêu đề yêu cầu có thể được truy cập trực tiếp thông qua request.headers
    () phương pháp.
    Về phía phản ứng, nó cung cấp các phương pháp để thiết lập cookie () , vị trí = () và trạng thái =
    () . Nếu bạn cảm thấy mạo hiểm, bạn cũng có thể thiết lập cơ = () và bỏ qua các hệ thống dựng
    hình Rails.
    jQuery Ajax
    Bởi vì jQuery chủ yếu là một thư viện phía khách hàng, Ajax API của nó cung cấp một khuôn
    khổ đối diện của phía máy chủ. Nói cách khác, nó cho phép bạn đọc thông điệp trả lời và sửa
    đổi thông điệp yêu cầu.jQuery cho thấy một API đơn giản thông qua jQuery.ajax (cài đặt) :
    Bằng cách thông qua một thiết lập đối tượng với beforeSend gọi lại, chúng ta có thể sửa đổi các
    tiêu đề yêu cầu. Gọi lại nhận được jqXHR (jQuery XMLHttpRequest) đối tượng đó cho thấy một
    phương pháp được gọi là setRequestHeader () để thiết lập tiêu đề.
    1
    2
    3
    4
    5
    6
    7
    $. Ajax ({
    url: ' http://www.articles.com/latest ' ,
    đi: 'GET' ,
    beforeSend: chức năng (jqXHR) {
    jqXHR.setRequestHeader ( 'Chấp nhận-Ngôn ngữ' , 'en-US, en' );
    }
    });
     Đối tượng jqXHR cũng có thể được sử dụng để đọc các tiêu đề ứng
    với jqXHR.getResponseHeader () .
     Nếu bạn muốn có những hành động cụ thể đối với mã trạng thái khác nhau, bạn có thể sử
    dụngstatusCode gọi lại:
    1
    2
    3
    4
    5
    6
    7
    $. Ajax ({
    statusCode: {
    404: chức năng () {
    alert ( "Trang không tìm thấy" );
    }
    }
    });
    9
    3.) Thông điệp HTTP
    Các phần trước đã trình bày hoạt động của HTTP, và chúng ta đã xem xét từng thông điệp cụ
    thể. Không giống như các giao thức truyền thông khác, các thông điệp HTTP chủ yếu là các văn
    bản tiếng Anh. Thay vì lo lắng về các bit và byte, trong phần này chúng ta xem xét những từ mà
    HTTP định dạng.
    Phần này sẽ trình bày cấu trúc tổng thể của thông điệp HTTP. Chúng ta sẽ thấy, một thông điệp
    HTTP bắt đầu với một “line” hay một mã trạng thái, có thể được theo sau bởi các tiêu đề
    (header) khác nhau và phần thân (body) của thông điệp.
    3.1) Cấu trúc thông điệp
    - HTTP có hai tác nhân là client và server. Các client gởi yêu cầu (request) và server trả lời
    (response). Vì vậy, chúng ta sẽ phân tích hai thông điệp chính là HTTP Requests và HTTP
    Responses.
    a. HTTP Request
    Hình 2: Cấu trúc thông điệp HTTP Request
    - Hình trên cho thấy cấu trúc cơ bản của HTTP Requests. Một HTTP Requests. bắt đầu bởi
    Request-Line. Request-Line có thể được theo sau bởi một hoặc nhiều header và body.
    Để cụ thể hơn, hình bên dưới cho thấy một thông điệp http (dưới dạng văn bản) do Internet
    Explorer của Microsoft gửi khi người dùng truy cập vào trang www.ft.com. Dòng đầu tiên là
    Request-Line, và tiêu đề thông điệp tạo nên phần còn lại của văn bản.
    10
    Hình 3: Một ví dụ về nội dung thông điệp HTTP
    - Hình dưới phân tích cụ thể hơn Request-Line, bao gồm 3 phần: Method – phương thức của
    thông điệp, URI, và Version- phiên bản của HTTP
    Hình 4 : Ví dụ cụ thể về Request-Line
    Phương thức (method) cụ thể xuất hiện đầu tiên trong Request-Line. Trong ví dụ trên đây là
    một phương thức GET
    Mục tiếp theo trong Request-Line là Request-URI. Request-URI chứa nguồn tài nguyên cần
    truy cập. Trong ví dụ trên, Request-uri là (/), chỉ ra một yêu cầu đối với các nguồn tài
    nguyên gốc. Phần cuối cùng của Request-Line là phiên bản HTTP. Như ví dụ trên cho thấy,
    HTTP phiên bản 1.1.
    b. HTTP Response:
    Request Resonse bắt đầu bởi Status-Line (dòng mã trạng thái). Sau đó là phần thông tin của
    Header và một dòng trắng. Cuối cùng là phần body.
    Hình 5 : Cấu trúc thông điệp HTTP Response
    11
    Status-Line bắt đầu bởi số phiên bản của HTTP (trường hợp này là HTTP/1.1), sau đó là mã
    trạng thái(trường hợp này là 200 OK)
    Hình 6 : Cụ thể trường Status-Line
    3.2) Các trường trong HTTP header
    Hình 7 : Ví dụ về HTTP header
    Như chúng ta đã thấy ở các phần trước, HTTP Request và HTTP Response có thể bao gồm một
    hoặc nhiều thông điệp header (message header). Message header bắt đầu với một tên trường và
    dấu hai chấm :)).
    Như ví dụ trên, các Message header là Accept: , Accept-Language
    12
    4.) URI – Uniform Resource Identifiers
    - Thông thường, chúng ta thường quen thuộc với định nghĩa URL (Uniform Resource
    Locators) Địa chỉ http://www.example.com.vn là một ví dụ về URL. Trên thực tế, không có
    nhiều khác biệt giữa hai khái niệm URL và URI, URL một chỉ là một loại của URI.
    URI là một đặc điểm kỹ thuật của giao thức HTTP. Như hình dưới cho thấy một URI chứa rất
    nhiều các thành phần, không đơn giản như URL.
    Hình 9 : Cấu trúc đầy đủ URI.
    - Protocol: Xác định các giao thức và các ứng dụng cần thiết để truy cập tài nguyên, trong
    trường hợp này là giao thức HTTP
    - Username: Nếu giao thức hỗ trợ khái niệm về tên người dùng thì username cung cấp tên người
    dùng để chứng thực truy cập tài nguyên
    - Password: Mật khẩu truy cập tài nguyên
    - Host: Tên miền truyền thông cho webserver,
    - Port: Là port cho các giao thức lớp ứng dụng, ví dụ như HTTP là cổng 80 (có thể bỏ qua tham
    số này).
    - Path: đường dẫn phân cấp đến tài nguyên được đặt trên Server
    - File: Tên các tập tin tài nguyên trên Server
    - Query: Các tuy vấn thêm thông tin về tài nguyên của Client
    - Fragment: Một vị trí nào đó trong tài nguyên
    5 .) Uniform Resource Locator (URL )
    Ở trung tâm của truyền thông web là thông báo yêu cầu, được gửi qua Uniform Resource
    Locators (URL).Tôi chắc rằng bạn đã quen thuộc với các URL, nhưng vì lợi ích đầy đủ, tôi sẽ
    đưa nó đây. URL có một cấu trúc đơn giản, bao gồm các thành phần sau:
    13
    Giao thức thường là http , nhưng nó cũng có thể là https cho thông tin liên lạc an toàn. Cổng mặc
    định là80 , nhưng có thể được thiết lập một cách rõ ràng, như minh họa trong hình trên. Con
    đường tài nguyên làcon đường địa phương để các nguồn tài nguyên trên máy chủ.
    URL (Uniform Resource Locator) được sử dụng để nhận diện một nguồn tài nguyên trên
    web. URL có cú pháp sau:
    giao thức :/ / hostname : port / đường dẫn và tên tập tin
    Có 4 bộ phận trong một URL:
    1. Nghị định thư : Các giao thức cấp ứng dụng được sử dụng bởi khách hàng và máy chủ, ví
    dụ như HTTP, FTP và telnet.
    2. Hostname : Các tên miền DNS (ví dụ, www.test101.com ) hoặc địa chỉ IP (ví dụ,
    192.128.1.2) của máy chủ.
    3. Cổng : Số cổng TCP mà máy chủ được lắng nghe yêu cầu đến từ các khách hàng.
    4. Đường dẫn và tên tập tin : Các tên và vị trí của các tài nguyên yêu cầu, dưới thư mục gốc
    tài liệu máy chủ.
    Ví dụ, trong các URL http://www.test101.com/docs/index.html , giao thức truyền thông là
    HTTP, tên máy chủ là www.test101.com . Số cổng không được quy định trong các URL, và mất
    trên số lượng mặc định là cổng 80 cho HTTP. Đường dẫn và tên tập tin cho các tài nguyên được
    đặt là " / docs / index.html ".
    Ví dụ khác về URL là:
    ftp://www.ftp.org/docs/test.txt
    mailto: [email protected]
    tin: soc.culture.Singapore
    telnet :/ / www.test101.com/
    6 .) HTTP Nghị định thư
    Như đã đề cập, bất cứ khi nào bạn nhập một URL trong hộp địa chỉ của trình duyệt, trình duyệt
    sẽ chuyển đổi URL vào một tin nhắn yêu cầu theo quy trình quy định và gửi tin nhắn yêu cầu
    đến máy chủ.
    Ví dụ, trình duyệt dịch URL http://www.test101.com/doc/index.html vào thông báo yêu cầu sau
    đây:
    GET / tài liệu / index.html HTTP/1.1
    Host: www.test101.com
    Chấp nhận: image / gif, image / jpeg, * / *
    14
    Accept-Language: en-us
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    (Dòng trống)
    Khi thông báo yêu cầu này đến máy chủ, máy chủ có thể hoặc là một trong những hành động
    này:
    1. Các máy chủ dịch các yêu cầu nhận được, các bản đồ theo yêu cầu vào một tập tin trong
    thư mục tài liệu của máy chủ, và trả về tập tin yêu cầu cho khách hàng.
    2. Các máy chủ dịch các yêu cầu nhận được, các bản đồ theo yêu cầu vào một chương
    trình lưu giữ trong các máy chủ, thực hiện các chương trình, và trả về đầu ra của chương
    trình cho khách hàng.
    3. Yêu cầu không được thỏa mãn, máy chủ trả về một thông báo lỗi.
    Một ví dụ của thông điệp HTTP phản ứng được như:
    HTTP/1.1 200 OK
    Ngày: Sun, 18 Oct 2009 08:56:53 GMT
    Máy chủ: Apache/2.2.14 (Win32)
    Last Modified: Sat, ngày 20 tháng 11 2004 07:16:26 GMT
    ETag: "10000000565a5-2c-3e94b66c2e680"
    Chấp nhận-Ranges: bytes
    Nội dung Thời lượng: 44
    Kết nối: Đóng
    Content-Type: text / html
    X-Pad: tránh lỗi trình duyệt
    <html> body h1 Nó hoạt động </ h1> </ body> </ html>
    Trình duyệt nhận được các tin nhắn trả lời, giải thích các tin nhắn và hiển thị nội dung của thông
    điệp trên cửa sổ trình duyệt theo loại phương tiện truyền thông của các phản ứng (như trong đáp
    ứng tiêu đề Content-Type). Loại phương tiện truyền thông phổ biến là " text / plain "," text /
    html "," image / gif "," image / jpeg "," audio / mpeg "," video / mpeg "," application / pdf ",
    và" ứng dụng / pdf ".
    Trong trạng thái chạy không tải của nó, một máy chủ HTTP không có gì nhưng nghe đến địa chỉ
    IP (es) và port (s) quy định trong cấu hình để yêu cầu gửi đến. Khi yêu cầu đến, máy chủ phân
    tích các tiêu đề tin nhắn, áp dụng quy tắc quy định trong cấu hình, và có hành động thích
    hợp. Điều khiển chính của quản trị trang web trên các hành động của máy chủ web là thông qua
    các cấu hình, sẽ được xử lý trong chi tiết hơn trong các phần sau.
    7.) HTTP qua TCP / IP
    HTTP là một khách hàng máy chủ giao thức cấp ứng dụng. Nó thường chạy trên một kết nối
    TCP / IP, như minh họa. (HTTP không nhất thiết phải chạy trên giao thức TCP / IP. Nó chỉ giả
    định vận tải đáng tin cậy. Bất kỳ giao thức vận tải cung cấp bảo lãnh như vậy có thể được sử
    dụng.)
    15
    * TCP / IP (Transmission Control Protocol / Internet Protocol) là một tập hợp các giao thông và
    mạng lưới các lớp thủ tục cho các máy giao tiếp với nhau qua mạng.
    * IP (Internet Protocol) là một giao thức lớp mạng, giao dịch với mạng địa chỉ và định
    tuyến. Trong một mạng IP, mỗi máy đều được gán một địa chỉ IP duy nhất (ví dụ 165.1.2.3), và
    phần mềm IP có trách nhiệm định tuyến một tin nhắn từ các nguồn IP IP đích. Trong IPv4 (IP
    phiên bản 4), địa chỉ IP gồm 4 byte, mỗi phạm vi từ 0 đến 255, cách nhau bằng dấu chấm, được
    gọi là một hình thức quad-chấm . Số đề án này hỗ trợ lên đến 4G địa chỉ trên mạng. IPv6 mới
    nhất (IP phiên bản 6) hỗ trợ địa chỉ hơn. Kể từ khi số lượng ghi nhớ là khó khăn cho hầu hết mọi
    người, một tên miền tiếng Anh giống như, chẳng hạn như www.test101.com được sử dụng để
    thay thế. DNS (Domain Name Service) dịch tên miền thành địa chỉ IP (thông qua các bảng tra
    cứu phân phối). Một địa chỉ IP đặc biệt 127.0.0.1 luôn luôn đề cập đến máy tính của riêng
    bạn. Đó là tên miền của là " localhost "và có thể được sử dụng để kiểm tra card mạng .
    * TCP (Transmission Control Protocol) là một giao thức vận chuyển lớp, chịu trách nhiệm thiết
    lập kết nối giữa hai máy tính. TCP bao gồm 2 giao thức: TCP và UDP (User Datagram trọn
    gói). TCP là đáng tin cậy, mỗi gói tin có số thứ tự, và một sự thừa nhận là dự kiến. Một gói tin
    sẽ được gửi lại nếu nó không được nhận bởi người nhận. Cung cấp gói tin được đảm bảo trong
    giao thức TCP. UDP không đảm bảo cung cấp gói, và do đó là không đáng tin cậy. Tuy nhiên,
    UDP ít tốn kém hơn mạng và có thể được sử dụng cho các ứng dụng như video và audio
    streaming, nơi mà độ tin cậy là không quan trọng.
    * TCP nhiều thành ứng dụng trong một máy IP. Đối với mỗi máy IP, TCP hỗ trợ (nhiều thành)
    lên đến 65.536 cổng (hoặc ổ cắm), từ số cổng 0-65.535. Một ứng dụng, chẳng hạn như HTTP
    hoặc FTP, chạy (hoặc nghe) tại một số cổng cụ thể để yêu cầu gửi đến. Cổng 0- 123 là tiền giao
    cho các giao thức phổ biến, ví dụ như HTTP 80, FTP tại 21, Telnet tại 23, SMTP 25 NNTP tại
    119, DNS tại 53 Cổng 1024 và ở trên có sẵn cho người sử dụng.
    Mặc dù cổng TCP 80 là tiền giao cho HTTP, như HTTP cổng mặc định, điều này không ngăn
    cấm bạn chạy một máy chủ HTTP ở cổng số người dùng khác được giao (1024-65535) như
    8000, 8080, đặc biệt là cho máy chủ thử nghiệm . Bạn cũng có thể chạy nhiều máy chủ HTTP
    trong cùng một máy trên các cổng khác nhau. Khi một vấn đề của khách hàng một URL mà
    không cần tuyên bố rõ ràng số cổng, ví dụ như, http://www.test101.com/docs/index.html , trình
    duyệt sẽ kết nối vào cổng số 80 mặc định của máy chủ www.test101.com . Bạn cần phải xác
    định một cách rõ ràng số cổng trong URL,
    16
    ví dụ như http://www.test101.com:8000/docs/index.html nếu máy chủ đang lắng nghe ở cổng
    8000 và không phải là cổng mặc định 80.
    Tóm lại, để giao tiếp qua giao thức TCP / IP, bạn cần phải biết (a) địa chỉ IP hay tên máy, (b) Số
    cổng.
    III.) Hoạt động giao thức HTTP
    HTTP định nghĩa phương pháp (đôi khi gọi là động từ ) để chỉ hành động mong muốn được thực
    hiện trên tài nguyên xác định. Những nguồn tài nguyên này đại diện, cho dù dữ liệu đã có từ
    trước hoặc dữ liệu được tạo ra tự động, phụ thuộc vào việc thực hiện của máy chủ. Thông
    thường, các nguồn tài nguyên tương ứng với một tập tin hoặc đầu ra của một thực thi nằm trên
    máy chủ.
    Các đặc điểm kỹ thuật HTTP/1.0
    :
    xác định các phương pháp GET, POST và HEAD và các đặc
    điểm kỹ thuật HTTP/1.1 thêm 5 phương pháp mới: LỰA CHỌN, PUT, DELETE, Trace và
    CONNECT. Bởi được quy định trong các văn bản ngữ nghĩa của họ được biết đến và có thể
    được khi phụ thuộc. Bất kỳ khách hàng có thể sử dụng bất kỳ phương pháp và máy chủ có thể
    được cấu hình để hỗ trợ bất kỳ sự kết hợp của phương pháp. Nếu một phương pháp là không biết
    đến một trung gian đó sẽ được coi là không an toàn và không idempotent phương pháp. Không
    có giới hạn về số lượng các phương pháp có thể được xác định và điều này cho phép các phương
    pháp tương lai được xác định mà không vi phạm cơ sở hạ tầng hiện có. Ví dụ WebDAV xác định
    7 phương pháp mới và RFC5789 quy định phương pháp Patch.
    - Giao thức HTTP định nghĩa một tập hợp các phương pháp yêu cầu. Một khách hàng có thể
    sử dụng một trong những phương pháp này yêu cầu gửi một thông điệp yêu cầu tới một máy
    chủ HTTP. Các phương pháp:
     GET: Một khách hàng có thể sử dụng các yêu cầu GET để có được một nguồn tài nguyên
    web từ máy chủ.
     Đầu (HEAD): Một khách hàng có thể sử dụng các yêu cầu HEAD để có được những tiêu đề
    mà một yêu cầu GET sẽ thu được. Kể từ khi tiêu đề có ngày chỉnh sửa cuối cùng của dữ
    liệu, điều này có thể được sử dụng để kiểm tra đối với các bản sao cache của địa phương.
     LỰA CHỌN (Opitions): Hỏi máy chủ để trả lại danh sách các phương pháp yêu cầu nó hỗ
    trợ.
     Trace : Hỏi máy chủ để trả lại một dấu vết chẩn đoán của các hành động cần.
     POST : Được sử dụng để gửi dữ liệu đến máy chủ web.
     Kết nối (CONNECT) : Được sử dụng để nói với một proxy để tạo kết nối đến máy chủ khác
    và chỉ cần trả lời các nội dung, mà không cố gắng để phân tích hoặc bộ nhớ cache nó. Này
    thường được sử dụng để thực hiện kết nối SSL thông qua proxy
     PUT: Hỏi máy chủ để lưu trữ dữ liệu.
     DELETE: Hỏi máy chủ để xóa dữ liệu.
    1.) Web Page Retrieval – GET
    GET là phương pháp yêu cầu HTTP phổ biến nhất. Một khách hàng có thể sử dụng phương pháp
    yêu cầu GET yêu cầu (hoặc "được") cho một phần của tài nguyên từ một máy chủ HTTP. Một
    thông báo yêu cầu GET có cú pháp sau:
    GET yêu cầu - URI HTTP phiên bản
    ( tiêu đề yêu cầu bắt buộc )
    (dòng trống)
    ( cơ quan yêu cầu tùy chọn )
    17
     Các từ khóa GET là trường hợp nhạy cảm và phải được viết hoa.
     yêu cầu-URI : xác định đường dẫn của tài nguyên yêu cầu, mà phải bắt đầu từ gốc " / "của
    thư mục cơ sở tài liệu.
     HTTP phiên bản : Hoặc HTTP/1.0 hoặc HTTP/1.1. Khách hàng này thương thảo các giao
    thức được sử dụng cho phiên hiện tại. Ví dụ, khách hàng có thể yêu cầu sử dụng
    HTTP/1.1. Nếu máy chủ không hỗ trợ HTTP/1.1, nó có thể thông báo cho khách hàng trong
    việc ứng phó với sử dụng HTTP/1.0.
     Khách hàng sử dụng các tiêu đề yêu cầu tùy chọn (ví dụ như chấp nhận , Accept-Language ,
    và vv) để đàm phán với các máy chủ và yêu cầu các máy chủ để cung cấp các nội dung ưa
    thích (ví dụ, trong các ngôn ngữ mà khách hàng ưa thích).
     GET tin nhắn yêu cầu có một cơ thể yêu cầu tùy chọn, trong đó có chuỗi truy vấn (được
    giải thích sau).
    - Hoạt động HTTP đơn giản nhất là GET. Đó là cách để Client lấy một đối tượng hoặc tài
    nguyên nào đó trên Server. Các trình duyệt sẽ yêu cầu một website từ Server với GET.
    Hình 9: Hoạt động GET của HTTP
    - Với ví dụ trên, Client khởi tạo và gởi thông điệp GET đến Server, thông điệp này định danh
    đối tượng mà Client yêu cầu Server đáp ứng bằng một URI (Uniform Resource Identifier).
    Server có thể trả về tài nguyên mà Client yêu cầu với một mã trạng thái 200 OK. Nếu Server
    không đáp ứng được yêu cầu Client thì nó sẽ gởi về một số mã trạng thái khác được mô tả ở
    bảng bên dưới.
    18
    Bảng 10 : Mã trạng thái được trả về của HTTP
    2.) HEAD ( đầu )
    Yêu cầu HEAD tương tự như GET yêu cầu. Tuy nhiên, các máy chủ chỉ trả về những phản ứng
    tiêu đề mà không có phản ứng cơ thể, trong đó có các tài liệu thực tế. Yêu cầu HEAD ích để
    kiểm tra các tiêu đề, chẳng hạn như Last Modified , Content-Type , Content-Chiều dài , trước
    khi gửi một yêu cầu GET thích hợp để lấy tài liệu.
    Cú pháp của yêu cầu HEAD là như sau:
    Đầu yêu cầu-URI HTTP phiên bản
    (tiêu đề yêu cầu tùy chọn khác)
    (Dòng trống)
    (Cơ quan yêu cầu tùy chọn)
    Ví dụ
    Đầu / index.html HTTP/1.0
    (Dòng trống)
    HTTP/1.1 200 OK
    Ngày: Sun, 18 Oct 2009 14:09:16 GMT
    Máy chủ: Apache/2.2.14 (Win32)
    Last Modified: Sat, ngày 20 tháng 11 2004 07:16:26 GMT
    ETag: "10000000565a5-2c-3e94b66c2e680"
    Chấp nhận-Ranges: bytes
    Nội dung Thời lượng: 44
    Kết nối: Đóng
    Content-Type: text / html
    X-Pad: tránh lỗi trình duyệt
    3.) Opitions ( Lựa chọn )
     Một khách hàng có thể sử dụng một phương pháp yêu cầu OPTIONS để truy vấn các
    máy chủ mà các phương pháp yêu cầu được hỗ trợ. Cú pháp cho LỰA CHỌN tin nhắn
    yêu cầu là:
     CHỌN yêu cầu-URI | * HTTP phiên bản
     (tiêu đề tùy chọn khác)
     (Dòng trống)
     " * "có thể được sử dụng thay cho một yêu cầu URI để chỉ ra rằng yêu cầu không áp
    dụng cho bất kỳ tài nguyên cụ thể.
     Ví dụ
     Ví dụ, yêu cầu CHỌN sau được gửi thông qua một máy chủ proxy:
     CHỌN http://www.amazon.com/ HTTP/1.1
     Host: www.amazon.com
     Kết nối: Đóng
    19
     (Dòng trống)
     HTTP/1.1 200 OK
     Ngày: Fri, 27 Tháng 2 2004 09:42:46 GMT
     Content-Length: 0
     Kết nối: Đóng
     Máy chủ: Stronghold/2.4.2 Apache/1.3.6 C2NetEU/2412 (Unix)
     Cho phép: GET, HEAD, POST, CHỌN, TRACE
     Kết nối: Đóng
     Thông qua: 1.1 xproxy (NetCache NetApp/5.3.1R4D5)
     (Dòng trống)
    4.) TRACE
    Một khách hàng có thể gửi yêu cầu TRACE yêu cầu các máy chủ để trả lại một dấu vết chẩn
    đoán.
    Yêu cầu TRACE có cú pháp sau:
    Trace / HTTP phiên bản
    (dòng trống)
    Ví dụ
    Ví dụ sau đây cho thấy một yêu cầu TRACE phát hành thông qua một máy chủ proxy.
    Trace http://www.amazon.com/ HTTP/1.1
    Host: www.amazon.com
    Kết nối: Đóng
    (Dòng trống)
    HTTP/1.1 200 OK
    Transfer-Encoding: chửi rủa
    Ngày: Fri, 27 Tháng 2 2004 09:44:21 GMT
    Content-Type: tin nhắn / http
    Kết nối: Đóng
    Máy chủ: Stronghold/2.4.2 Apache/1.3.6 C2NetEU/2412 (Unix)
    Kết nối: Đóng
    Thông qua: 1.1 xproxy (NetCache NetApp/5.3.1R4D5)
    9d
    Trace / HTTP/1.1
    Kết nối: giữ-sống
    Host: www.amazon.com
    Thông qua: 1.1 xproxy (NetCache NetApp/5.3.1R4D5)
    X-Forwarded-For: 155.69.185.59, 155.69.5.234
    0
    20
    5.) POST
    Phương thức POST yêu cầu được sử dụng để "gửi" dữ liệu bổ sung lên đến máy chủ (ví dụ, cung
    cấp dữ liệu dưới dạng HTML hoặc tải lên một tập tin). Phát hành một HTTP URL từ trình duyệt
    luôn luôn gây ra một yêu cầu GET. Để kích hoạt một yêu cầu POST, bạn có thể sử dụng một
    hình thức HTML với thuộc tính method = "post" hoặc viết chương trình mạng riêng của bạn. Để
    gửi dữ liệu dạng HTML, yêu cầu POST là giống như các yêu cầu GET, ngoại trừ các chuỗi
    URL-mã hoá được gửi trong cơ thể yêu cầu, chứ không phải nối phía sau yêu cầu-URI .
    Yêu cầu POST có cú pháp sau:
    POST yêu cầu-URI HTTP phiên bản
    Content-Type: mime-type
    Content-Length: số-của-byte
    (Tiêu đề yêu cầu tùy chọn khác)
    (URL-mã hóa chuỗi truy vấn)
    Yêu cầu tiêu đề Content-Type và Content-Chiều dài là cần thiết trong yêu cầu POST để thông
    báo cho máy chủ các loại phương tiện truyền thông và chiều dài của cơ thể yêu cầu.
    Ví dụ : N ộ p m ẫ u d ữ li ệ u s ử d ụ ng phương pháp yêu c ầ u POST
    Chúng tôi sử dụng kịch bản HTML tương tự như trên, nhưng thay đổi phương pháp yêu cầu
    POST.
    <html>
    <head> <title> Đăng nhập </ title> </ head>
    <body>
    Đăng nhập </ h2>
    <Form method = "post" action = "/ bin / login">
    Tên người dùng: <input type="text" name="user" size="25" /> <br />
    Mật khẩu: <input type="password" name="pw" size="10" /> <br /> <br />
    <input type="hidden" name="action" value="login" />
    <input type="submit" value="SEND" />
    </ Form>
    </ Body>
    </ Html>
    Giả sử người dùng nhập vào "Peter Lee" như tên người dùng và "123456" là mật khẩu, và nhấp
    chuột vào nút gửi, yêu cầu POST sau đây sẽ được tạo ra bởi các trình duyệt:
    POST / bin / login HTTP/1.1
    Host: 127.0.0.1:8000
    Chấp nhận: image / gif, image / jpeg, * / *
    Nguồn tham khảo: http://127.0.0.1:8000/login.html
    Accept-Language: en-us
    Content-Type: application / x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Nội dung Thời lượng: 37
    Kết nối: Giữ-Alive
    Cache-Control: no-cache
    Người sử dụng = + Peter Lee & pw = 123456 & action = đăng nhập
    Lưu ý rằng các Content-Type tiêu đề thông báo cho máy chủ dữ liệu là URL-mã hóa (đặc biệt
    với một định dạng MIME application / x-www-form-urlencoded ), và các nội dung có độ dài tiêu
    đề cho máy chủ có bao nhiêu byte để đọc từ tin nhắn cơ thể.
    21
    POST vs GET c ho Trình M ẫ u d ữ li ệ u
    Như đã đề cập trong phần trước, yêu cầu POST có lợi thế sau so với yêu cầu GET trong việc gửi
    các chuỗi truy vấn:
     Số lượng dữ liệu có thể được đăng là không giới hạn, khi chúng được lưu giữ trong cơ thể
    yêu cầu, thường được gửi đến máy chủ trong một dòng dữ liệu riêng biệt.
     Chuỗi truy vấn không được hiển thị trên hộp địa chỉ của trình duyệt.
     Lưu ý rằng mặc dù các mật khẩu không được hiển thị trên hộp địa chỉ của trình duyệt, nó
    được truyền đến máy chủ trong văn bản rõ ràng, và bị mạng đánh hơi. Do đó, việc gửi mật
    khẩu sử dụng một yêu cầu POST là hoàn toàn không an toàn.
    6.) CONNECT ( Kết nối )
    HTTP k ế t n ố i
    Một kết nối phải được thiết lập giữa máy khách và máy chủ trước khi họ có thể giao tiếp với
    nhau, và HTTP sử dụng đáng tin cậy giao thức truyền tải TCP để làm cho kết nối này. Theo mặc
    định, lưu lượng truy cập web sử dụng cổng TCP 80. Một dòng TCP được chia thành các gói IP,
    và nó đảm bảo rằng các gói luôn đến theo thứ tự chính xác mà không thất bại. HTTP là một giao
    thức lớp ứng dụng qua giao thức TCP, mà là qua IP.
    HTTPS là một phiên bản an toàn của HTTP, chèn thêm một lớp giữa HTTP và TCP được gọi là
    TLS hoặc SSL (Transport Layer Security hoặc Secure Sockets Layer, tương ứng). HTTPS giao
    tiếp qua cổng mặc định 443, và chúng tôi sẽ xem xét HTTPS sau trong bài viết này.
    Một kết nối HTTP được xác định bởi <source-IP, source-port> và <destination-IP, destination-port> . Trên một khách hàng, một ứng dụng HTTP được xác định bởi một <IP, port> tuple. Thiết
    lập kết nối giữa hai thiết bị đầu cuối là một quá trình gồm nhiều bước và liên quan đến việc sau
    đây:
    22
     giải quyết địa chỉ IP từ tên máy chủ thông qua DNS
     thiết lập kết nối với máy chủ
     gửi yêu cầu
     chờ đợi một phản ứng
     kết nối chặt chẽ
    Các máy chủ có trách nhiệm luôn luôn đáp ứng với các tiêu đề chính xác và phản ứng.
    Trong HTTP/1.0, tất cả các kết nối đã bị đóng cửa sau khi một giao dịch duy nhất. Vì vậy, nếu
    một khách hàng muốn yêu cầu ba hình ảnh riêng biệt từ cùng một máy chủ, nó làm cho ba kết
    nối riêng biệt cho các máy chủ từ xa. Như bạn có thể nhìn thấy từ biểu đồ trên, điều này có thể
    giới thiệu nhiều sự chậm trễ mạng, dẫn đến một trải nghiệm người dùng dưới mức tối ưu.
    Để giảm sự chậm trễ kết nối thành lập, HTTP/1.1 giới thiệukết nối liên tục , kết nối lâu dài mà
    vẫn mở cho đến khi khách hàng đóng chúng. Kết nối liên tục là mặc định trong HTTP/1.1, và
    thực hiện kết nối giao dịch duy nhất yêu cầu của khách hàng để thiết lập kết nối: Đóng tiêu đề
    yêu cầu.Điều này cho máy chủ để đóng kết nối sau khi gửi phản hồi.
    Ngoài việc kết nối liên tục, trình duyệt / khách hàng cũng sử dụng một kỹ thuật được gọi là kết
    nối song song , để giảm thiểu sự chậm trễ mạng. Khái niệm lâu đời của các kết nối song song
    liên quan đến việc tạo ra một hồ bơi của các kết nối (thường giới hạn ở mức sáu kết nối). Nếu có
    sáu tài sản mà khách hàng cần phải tải về từ một trang web, khách hàng làm cho sáu kết nối song
    song để tải về những tài sản, dẫn đến một sự chuyển biến nhanh hơn. Đây là một cải tiến lớn trên
    các kết nối nối tiếp hợp khách hàng chỉ tải về một tài sản sau khi hoàn tất việc tải về một tài sản
    trước đó.
    Kết nối song song, kết hợp với kết nối liên tục, là câu trả lời của ngày hôm nay để giảm thiểu sự
    chậm trễ mạng và tạo ra một trải nghiệm mượt mà trên máy khách. Đối với một điều trị chuyên
    sâu của các kết nối HTTP, tham khảo các phần kết nối của spec HTTP.
    Xử lý kết nối phía máy chủ
    Máy chủ chủ yếu là lắng nghe các kết nối đến và xử lý chúng khi nhận được yêu cầu. Các hoạt
    động liên quan đến:
     thiết lập một ổ cắm để bắt đầu lắng nghe trên cổng 80 (hoặc một số cảng khác)
     nhận được yêu cầu và phân tích cú pháp tin nhắn
     xử lý các phản ứng
     thiết lập tiêu đề phản ứng
     gửi đáp ứng cho khách hàng
     đóng kết nối nếu một kết nối: Đóng tiêu đề yêu cầu đã được tìm thấy
    23
    Tất nhiên, đây không phải là một danh sách đầy đủ các hoạt động. Hầu hết các ứng dụng / trang
    web cần phải biết ai làm cho một yêu cầu để tạo ra phản ứng tùy chỉnh hơn. Đây là lĩnh
    vực nhận dạng và xác thực .
    7.) File Upload – PUT
    - Yêu cầu các đơn vị kèm theo được lưu trữ dưới URI được cung cấp. Nếu URI đề cập đến một
    nguồn tài nguyên đã tồn tại, nó được sửa đổi, nếu URI không trỏ đến một nguồn tài nguyên hiện
    có, sau đó các máy chủ có thể tạo ra các tài nguyên với URI đó
    - Các hoạt động PUT cũng cung cấp một cách để client gửi thông tin đến các Server. Hay nói
    cách khác, PUT dùng để upload dữ liệu lên server.
    - Như hình dưới cho thấy, hai hoạt động nhìn rất giống nhau. Với POST, Client gửi bao gồm một
    URI và dữ liệu. Web Server về mã trạng thái, tuỳ chọn kèm theo và dữ liệu. Sự khác biệt giữa
    POST và PUT ở chỗ URI : Với POST, các URI xác định một đối tượng trên Server mà có thể xử
    lý dữ liệu. Với một PUT, các URI xác định đối tượng trong đó các Server nên đặt dữ liệu (ví dụ
    đường dẫn cho Server đặt dữ liệu).
    Trong khi một POST URI thường chỉ ra một chương trình, script thì PUT uri thường là đường
    dẫn và tên cho tập tin.
    Hình 13: Hoạt động PUT của HTTP
    Hình 14: Ví dụ về File Upload - PUT
    24
    8.) File Deletion – DELETE
    - Với GET và PUT, giao thức HTTP trở thành một giao thức chuyển file đơn giản. Hoạt động
    DELETE sẽ hoàn thành chức năng này bằng cách giúp client xoá các đối tượng, tài nguyên từ
    các server.
    Như hình dưới cho thấy, client gửi một thông điệp DELETE cùng với các URI của đối tượng mà
    server nên xoá. Các server đáp ứng với một mã trạng thái và dữ liệu kèm theo.
    - Xóa các nguồn tài nguyên quy định.
    Hình 15: Hoạt động File Delection – DELETE
    IV) Mô phỏng với Packet Tracer
    1.) Giới thiệu packet tracer
     Packet Tracer là một phần mềm của Cisco giúp chúng ta thiết kế một hệ thống mạng
    ảo với mọi tình huống giống như thật. Packet Tracer được dùng rất nhiều trong
    hầu hết các chương trình giảng dạy và huấn luyện tại các trường hay các trung
    tâm. Các hãng xưởng cũng dùng Packet Tracer để vẽ và thiết kế hệ thống mạng của
    mình.
     Với Packet Tracer bạn có thể tự tạo một mạng ảo với đầy đủ các thiết bị, truyền
    thông (traffic) và máy chủ. Bạn có thể cấu hình các routers, switches, wireless
    access points, servers, và các thiết bị đầu cuối (end devices) .
    Những tính năng chính của chương trình :
     Logical Workspace – Vùng làm việc Logic :
    Bạn có thể tạo được nhiều kiểu mạng ( bus , star .), sử dụng các thiết bị có sẵn
    hoặc có thể thêm các modul nếu cần thiết . Sử dụng các router , hub , switch , Wireless
    access point .Các thiết bị được kết nối theo nhiều kiểu khác nhau.
    25
     Physical Workspace – Vùng làm việc vật lý .
    Cho bạn biết các thiết bị được đặt , tổ chức như thế nào trong một phòng sau khi bạn
    thiết kế mạng ở mức logic
    Physical Workspace được chia làm 4 mức: Intercity, City, Building, and
    Wiring Closet
    - Intercity ( liên thành phố) : có thể có nhiều city.
    - City : có thể có nhiều bulidings( tòa nhà).
    26
    27
    - Building : mỗi một tòa nhà có nhiều wring closet.
    - Wring closet : là nơi cho bạn thấy các thiết bị mà bạn đã thiết kế ở mức logical
    28
     Realtime Mode – Chế độ thời gian thực
    Cho phép bạn cấu hình router , switch , sử dụng các câu lệnh như ping, show .
    Đồng thời kiểm tra các thiết bị khi di chuột đến một đối tượng nào đó. Ví dụ : Khi bạn di
    chuột tới một con router thì một các cổng trên nó sẽ hiện ra cho bạn biết được địa chỉ IP .
     Protocols – Các giao thức
    LAN: Ethernet (bao gồm CSMA/CD), 802.11 Switching: VLANs,802.1q, trunking, VTP,
    DTP, STP TCP/IP: HTTP, DHCP, Telnet, TFTP, DNS, TCP, UDP, IP, ICMP, và ARP
    Routing: tĩnh, default, RIPv1, RIPv2, EIGRP, OSPF, VLAN routing. NAT (tĩnh,
    động ); ACLs; CDP WAN: HDLC, PPP, and Frame Relay.
     Simulation Mode – Chế độ giả lập
    Ở chế độ này chúng ta có thể nhìn thấy mạng hoạt động từng bước chậm , quan sát các tuyến
    đường mà gói tin đi và kiểm tra chúng một cách chi tiết.
    Cho bạn biết được hành trình của các gói tin ,sự hoạt động của mô hình OSI , chi tiết thành phần
    bên trong mỗi PDU,
    29
    2) Hướng dẫn cài đặt packet tracer 5.0
    Download PT 5.0 ở đâu ?
    PT 5.0 có các phiên bản, PT 5.0 full(bao gồm cả các tutorial, có dung lượng 94Mb) và
    PT 5.0 no tutorial(không có tutorial, có dung lượng 26Mb). Đối với các bạn lần đầu sử
    dụng nên download bản full bởi vì khi cài đặt xong sẽ có bài hướng dẫn sử dụng bằng
    video, còn nếu thấy không cần thiết thì có thể sử dụng bản không có hướng dẫn.
    Cách 1 : Login vào trang chủ của Cisco và đăng nhập bằng account bạn có, sau đó tải
    phiên bản mới nhất về.
    Hình 1:
    Cách 2: Nếu không có tài khoản trên đó các bạn có thể sử dụng các link chia sẻ được
    upload trên mạng. Dưới là một vài link tham khảo:
    Bản full–94Mb
    ã Link 1: http://www.megaupload.com/?d=0VSFPM2B
    ã Link 2: http://www.mediafire.com/?nikqzwjmndm
    30
    ã Link 3: http://rapidshare.com/files/202220003/PacketTracer_5.rar
    Bản no tutorial–25Mb
    ã Link 1: http://www.mediafire.com/download.php?y2t22nzmjem
    ã Link 2: http://www.google.com.vn/search?hl=vi&q=download+packet+tracer+
    5.0+no+tutorial&btnG=Tìm+kiếm&meta=
    31
    Sau khi download về, ta tiến hành cài đặt như các phần mềm bình thường (click “next”
    liên tục và cuối cùng là click “Finish”). Sau khi cài đặt xong, tiến hành khởi động và làm
    quen với PT.
    Vào Start → All Program → Packet Tracer 5.0 → Packet Tracer 5.0
    Hoặc click vào icon PT ở ngoài Desktop. Ta sẽ có giao diện chính của PT như hình dưới
    đây.
    3) Giao diện chính của PT
    Khi bạn khởi động PT lần đầu tiên từ màn hình Desktop hay Start menu bạn thấy giao
    diện mặc định như hình dưới này.
    32
    Giao diện ban đầu này chứa 10 thành phần. Dưới đây sẽ liệt kê và tóm tăt chức năng của
    từng mục trong giao diện này.
    3.1) Menu Bar
    Tương ứng với vị trí số 1 trong hình. Thanh này cung cấp các bảng chọn như: File,
    Edit, Options, View, Tools, Extentions và Help. Ứng với các từng bảng chọn ở trên
    bạn có thể tìm thấy các chỉ thị cơ bản như: Open, Save, Print và Preferences. Bạn
    cũng có thể truy cập đến Activity Wizard từ menu Extentions.
    33
    3.2) Menu Tool Bar
    Thanh này cung cấp các biểu tượng để truy cập nhanh đến các các chỉ thị trọng menu
    File và menu Edit. Cũng trong thanh này còn cung cấp các biểu tượng để thực hiện các
    chức năng Zoom, bảng vẽ Palette, hay Device Template Manager. Ngoài ra, tại đây bạn
    34
    cũng có thể sử dụng biểu tượng Network Imfomation để nhập các mô tả ngắn ngọn cho
    mô hình mạng của mình.
    3.3) Common Tools Bar
    Thanh này cung cấp các truy cập thường sử dụng cho vùng làm việc ví dụ như: Select,
    Move Layout, Place Note, Delete, Inspect, Add Simplu PDU và Add Complex
    PDU
    ã Select để lựa chọn các đối tượng trên vùng làm việc.
    ã Move Layout để di chuyển các đối tượng trên vùng làm việc.
    ã Delete để xóa các đối tượng trên vùng làm việc.
    ã Inspect để kiểm tra thuộc tính của các đối tượng
    Ngoài ra còn các tính năng khác sẽ không đưa vào tài liệu này ! Chúng ta sẽ tìm hiểu dần
    trong các video hướng dẫn.
    3.4) Logical/Physical Workspace and Navigation Bar
    Đây là vùng làm việc chính của bạn, tại đây bạn xây dựng các topo cho các bài LAB,
    phần này thường được sử dụng nhiều nhất, nó giúp ta quan sát topo trong quá trình thực
    hành.
    3.5) Workspace
    Đây là vùng làm việc chính của bạn, tại đây bạn xây dựng các topo cho các bài LAB,
    phần này thường được sử dụng nhiều nhất, nó giúp ta quan sát topo trong quá trình thực
    hành.
    35
    3.6) Realtime/Simulation Bar
    Tại mục này bạn có thể lựa chọn 2 chế độ Realtime và Simulation. Trong chế độ Simulation
    bạn có thể quan sát hình ảnh các gói tin được trao đổi trong mạng.
    3.7) Network Component Box
    36
    Trong mục này bạn có thể lựa chọn các thiết bị và các kết nối để đặt lên vùng làm việc
    (vùng 5). Trong vùng này chứa mục Device-Type Selection và Device-Specific
    Selection
    3.8) Device-Type Selection
    Mục này chứa các kiểu thiết bị và kết nối mà PT 5.0 hỗ trợ. Mỗi khi bạn lựa chọn một
    biểu tượng thiết bị ở mục này thì các loại của từng thiết bị (hoặc kết nối) sẽ thay đổi.
    Việc chọn thiết bị hay kết nối nào là phải phù hợp với yêu cầu của các bài LAB. Ví dụ
    như khi bạn thiết bị router trong mục Device-Type Selection thì tương ứng với thiết
    bị này là các loại router trong mục Device-Type Selection
    3.9) Device-Specific Selection
    Phần này liệt kê từng loại của các thiết bị. Ví dụ như các dòng router ( 1814, 2620XM,
    2811 ), các dòng switch ( 2950-24, 2950T, Switch-PT ), các kiểu kết nối(Seria, Console,
    Copper Cross-Over, Filber ).
    37
    38
    4.) Mô phỏng
    Mô phỏng hệ thống đơn giản một PC và một server kết nối với nhau.
    Minh họa:
    Lựa chọn hai thiết bị cần kết nối là PC và server:
    39
    Sau đó lần lượt kéo chúng ra màn hình :
    Click
    vào biểu tượng PC trên, chúng ta có thể có thêm những thông tin chi tiết về nó,và có thể tiến hành cài đặt các
    thông số cho PC đó trên mạng như IP, Gateway, tên máy,loại thiết bị dùng để kết nối vào mạng
    40
    Để cấu hình IP của máy ta chọn DESKTOP:
    Sau đó IP configuration để tiến hành cấu hình IP cho máy:
    41
    Để tiến hành cấu hình Server
    , chúng ta cũng làm tượng tự, click vào hình Server , 1 bảng các thông tin chi tiết sẽ giúp chúng ta biết và
    tiến hành cài đặt các thông số choServer như IP, các dịch vụ HTTP, DNS Các thông số cài đặt ở Tab
    CONFIG
    Để cấu hình địa chỉ IP cho Server chúng ta chọn FastEthernet. Sau đó tiến hành cấuhình địa chỉ IP và
    Subnet Mask cho Server
    42
    Sau đó chúng ta click vào biểu tượng PC và kết nối với Server như hình sau:
    Hướng dẫn sử dụng được những dịch vụ mà Server cung cấp
    Sử dụng dịch vụ HTTP:Bạn Click vào biểu tượng PC, sau đó chọn tab
    DESKTOP
    , chúng ta sẽ có giao diện vớicác chức năng như sau :
    43
    Chọn Web Browser , ta sẽ có 1 trình duyệt Web đơn giản giúp chúng ta có thể sử dụngdịch vụ HTTP do Server
    cung cấp:
    44
    Hướng dẫn thực hiện 1 số lệnh cơ bảnĐể sử dụng được các lệnh này từ PC, chúng ta click chọn vào PC,
    sau đó chọn tabCONFIG, tiếp tục chọn
    Command Prompt
    Click chọn thì giao diện hiện ra như sau:
    45
    Tại đây chúng ta có thể thực thi các câu lệnh cơ bản mà Packet Tracer hỗ trợ, sau đây làminh họa các câu
    lệnh cơ bản :
     Lệnh ping:
     Lệnh TELNET
    46
     Lệnh tracert
    Để muốn biết các thông tin chi tiết về câu lệnh chúng ta có thể đánh lệnh HELP hoặc ?, Packet Tracer sẽ
    hiển thị thông tin các câu lệnh như sau:
    47
     

    Các file đính kèm:

Đang tải...