intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tài liệu HTTP tiếng Việt

Chia sẻ: Nguyen Thanh Tuyen | Ngày: | Loại File: PDF | Số trang:72

185
lượt xem
47
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

HTTP là viết tắt của giao thức truyền tải siêu văn bản là một giao thức cấp độ ứng dụng cho các hệ thống thông tin phân phối, cộng tác và đa phương tiện. Đây là nền tảng cho giao tiếp thông tin cho World Wide Web từ 1990. HTTP là một giao thức chung và stateless mà có thể được sử dụng cho các mục đích khác cũng như các sự mở rộng của các phương thức yêu cầu, các code lỗi và Header của nó. Nhằm giúp các bạn hiểu rõ hơn về vấn đề này mời các bạn cùng tham khảo nội dung tài liệu "HTTP tiếng Việt" dưới đây. Hy vọng đây là tài liệu tham khảo hữu ích cho các bạn.

Chủ đề:
Lưu

Nội dung Text: Tài liệu HTTP tiếng Việt

  1. http://vietjack.com/http/index.jsp Copyright © vietjack.com Mục lục Giới thiệu về giao thức HTTP................................................................................................ 5 Đối với độc giả ...................................................................................................................... 6 Điều kiện tiền đề ................................................................................................................... 6 Tổng quan về HTTP ............................................................................................................. 6 Các đặc trưng cơ bản ....................................................................................................... 6 Cấu trúc cơ bản ................................................................................................................ 7 Client ........................................................................................................................... 8 Server ......................................................................................................................... 8 Các tham số trong HTTP ...................................................................................................... 8 Phiên bản HTTP............................................................................................................... 8 Ví dụ ............................................................................................................................ 8 Uniform Resource Identifiers - Bộ nhận diện nguồn tài nguyên đồng nhất......................... 9 Ví dụ ............................................................................................................................ 9 Các định dạng Ngày/Thời gian ......................................................................................... 9 Các bộ ký tự ..................................................................................................................... 9 Ví dụ ............................................................................................................................ 9 Mã hóa nội dung ............................................................................................................. 10 Ví dụ .......................................................................................................................... 10 Các kiểu đa phương tiện (media types) .......................................................................... 10 Ví dụ .......................................................................................................................... 11 Các thẻ ngôn ngữ........................................................................................................... 11 Ví dụ .......................................................................................................................... 11 Message trong HTTP ......................................................................................................... 11 Dòng đầu thông báo (start-line) ....................................................................................... 12 Các trường Header ........................................................................................................ 13 Phần thân thông báo ...................................................................................................... 14 Yêu cầu (Request) trong HTTP .......................................................................................... 14 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1
  2. http://vietjack.com/http/index.jsp Copyright © vietjack.com Dòng Yêu cầu................................................................................................................. 15 Method yêu cầu .............................................................................................................. 15 Request-URI................................................................................................................... 16 Các trường Header Yêu cầu .......................................................................................... 17 Các ví dụ của Thông báo Yêu cầu.................................................................................. 19 Phản hồi (Response) trong HTTP....................................................................................... 20 Dòng trạng thái ............................................................................................................... 20 Phiên bản HTTP............................................................................................................. 21 Mã hóa trạng thái ............................................................................................................ 21 Các trường Header Phản hồi.......................................................................................... 22 Các ví dụ về Thông báo Phản hồi ................................................................................... 22 Phương thức trong HTTP................................................................................................... 24 Phương thức GET.......................................................................................................... 25 Phương thức HEAD ....................................................................................................... 26 Phương thức POST ....................................................................................................... 27 Phương thức PUT.......................................................................................................... 28 Phương thức DELETE ................................................................................................... 29 Phương thức CONNECT ............................................................................................... 29 Phương thức OPTIONS................................................................................................. 30 Phương thức TRACE..................................................................................................... 30 Mã hóa trạng thái trong HTTP............................................................................................. 31 1xx: Thông tin ................................................................................................................. 32 2xx: Thành công ............................................................................................................. 32 3xx: Sự điều hướng lại.................................................................................................... 33 4xx: Lỗi Client.................................................................................................................. 34 5xx: Lỗi Server ................................................................................................................ 36 Các trường Header trong HTTP ......................................................................................... 36 General Header .............................................................................................................. 37 Trường Cache-Control ........................................................................................... 37 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 2
  3. http://vietjack.com/http/index.jsp Copyright © vietjack.com Trường Connection ................................................................................................ 40 Trường Date ............................................................................................................ 40 Trường Pragma....................................................................................................... 41 Trường Trailer ......................................................................................................... 41 Trường Transfer-Encoding (Mã hóa truyền tải) ................................................. 41 Trường Upgrade ..................................................................................................... 41 Trường Via ............................................................................................................... 42 Trường Warning (Cảnh báo) ................................................................................ 42 Các trường Header yêu cầu trên Client........................................................................... 42 Trường Accept (Chấp nhận) ................................................................................. 42 Trường Accept-Charset ......................................................................................... 43 Trường Accept-Encoding ...................................................................................... 43 Trường Accept-Language ..................................................................................... 43 Trường Authorization (Sự ủy quyền)................................................................... 44 Trường Cookie ........................................................................................................ 44 Trường Expect ........................................................................................................ 44 Trường From ........................................................................................................... 44 Trường Host ............................................................................................................ 45 Trường If-Match ...................................................................................................... 45 Trường If-Modified-Since ...................................................................................... 45 Trường If-None-Match ........................................................................................... 46 Trường If-Range ..................................................................................................... 46 Trường If-Unmodified-Since ................................................................................. 46 Trường Max-Forwards ........................................................................................... 47 Trường Proxy-Authorization.................................................................................. 47 Trường Range ......................................................................................................... 47 Trường Referer ....................................................................................................... 48 Trường TE ............................................................................................................... 48 Trường User-Agent ................................................................................................ 49 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 3
  4. http://vietjack.com/http/index.jsp Copyright © vietjack.com Các trường Phản hồi từ Server....................................................................................... 49 Trường Accept-Ranges ......................................................................................... 49 Trường Age ............................................................................................................. 49 Trường ETag ........................................................................................................... 50 Trường Location ..................................................................................................... 50 Trường Proxy-Authenticate ................................................................................... 50 Trường Retry-After ................................................................................................. 51 Trường Server ......................................................................................................... 51 Trường Set-Cookie ................................................................................................. 51 Trường Vary ............................................................................................................ 52 Trường WWW-Authenticate.................................................................................. 53 Entity Headers ................................................................................................................ 53 Trường Allow ........................................................................................................... 53 Trường Content-Encoding .................................................................................... 53 Trường Content-Language ................................................................................... 54 Trường Content-Length ......................................................................................... 54 Trường Content-Location ...................................................................................... 54 Trường Content-MD5 ............................................................................................. 55 Trường Content-Range ......................................................................................... 55 Trường Content-Type ............................................................................................ 56 Trường Expires ....................................................................................................... 56 Trường Last-Modified ............................................................................................ 56 Caching trong HTTP........................................................................................................... 56 Mã hóa URL trong HTTP.................................................................................................... 59 Bảo mật trong HTTP........................................................................................................... 66 Sự rò rỉ thông tin cá nhân ................................................................................................ 66 Sự tấn công dựa trên các tên Path và File ...................................................................... 67 Việc đánh lừa DNS (DNS Spoofing) ............................................................................... 67 Vị trí các Header và việc đánh lừa................................................................................... 68 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 4
  5. http://vietjack.com/http/index.jsp Copyright © vietjack.com Ủy nhiệm xác minh ......................................................................................................... 68 Các sự ủy quyền và việc ghi vào bộ nhớ ẩn ................................................................... 68 Ví dụ về Message trong HTTP............................................................................................ 68 Ví dụ 1 ............................................................................................................................ 68 Client yêu cầu: ......................................................................................................... 68 Server phản hồi: ...................................................................................................... 69 Ví dụ 2 ............................................................................................................................ 69 Client yêu cầu .......................................................................................................... 69 Server phản hồi ....................................................................................................... 69 Ví dụ 3 ............................................................................................................................ 70 Client yêu cầu .......................................................................................................... 70 Server phản hồi ....................................................................................................... 70 Ví dụ 4 ............................................................................................................................ 71 Client yêu cầu .......................................................................................................... 71 Server phản hồi ....................................................................................................... 71 Tài liệu tham khảo về HTTP................................................................................................ 72 Các đường link hữu ích về HTTP ................................................................................... 72 Giới thiệu về giao thức HTTP HTTP là viết tắt của Giao thức truyền tải siêu văn bản (Hypertext Transfer Protocol) là một giao thức cấp độ ứng dụng cho các hệ thống thông tin phân phối, cộng tác và đa phương tiện. Đây là nền tảng cho giao tiếp thông tin cho World Wide Web (ví dụ: Internet) từ 1990. HTTP là một giao thức chung và stateless mà có thể được sử dụng cho các mục đích khác cũng như các sự mở rộng của các phương thức yêu cầu, các code lỗi và Header của nó. Phần hướng dẫn này được xây dựng trên cơ sở các chi tiết kỹ thuật RFC-2616, mà xác định giao thức có liên quan như HTTP/1.1. HTTP/1.1 là một phiên bản của HTTP ban đầu (HTTP/1.0). Sự khác biệt lớn giữa HTTP/1.0 và HTTP/1.1 là HTTP/1.0 sử dụng một kết nối mới cho mỗi Yêu http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 5
  6. http://vietjack.com/http/index.jsp Copyright © vietjack.com cầu/Phản hồi trao đổi, trong khi đó kết nối trong HTTP/1.1 có thể được sử dụng cho một hoặc nhiều Yêu cầu/Phản hồi trao đổi. Loạt bài hướng dẫn của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint Đối với độc giả Phần hướng dẫn này đã được chuẩn bị cho các học viên nghiên cứu về khoa học máy tính và các nhà phát triển web để giúp họ có kiến thức cơ bản về các khái niệm các mức độ phát triển của HTTP. Điều kiện tiền đề Trước khi tiến hành học tập với phần hướng dẫn này, nó là tốt cho bạn khi bạn có một sự hiểu biết cơ bản về các khái niệm web, các trình duyệt web, các Server, và phần mềm xây dựng trên cơ sở cấu trúc Server-Client. Tổng quan về HTTP HTTP là một giao thức cấp độ ứng dụng cho các hệ thống thông tin phân phối, cộng tác, đa phương tiện. Đây là nền tảng cho giao tiếp dữ liệu cho WWW (ví dụ: Internet) từ 1990. HTTP là một giao thức chung và stateless mà có thể được sử dụng cho các mục đích khác cũng như các sự co giãn của các phương thức yêu cầu, các code lỗi và Header của nó. Theo cơ bản, HTTP là một giao thức giao tiếp trên cơ sở TCP/IP, mà được sử dụng để phân phối dữ liệu (các tệp HTML, các file ảnh, …) trên WWW. Cổng mặc định là TCP 80, những các cổng khác cũng có thể được sử dụng. Nó cung cấp một cách được tiêu chuẩn hóa cho các máy tính để giao tiếp với nhau. Chi tiết kỹ thuật HTTP xác định cách mà dữ liệu yêu cầu của Client sẽ được xây dựng và được gửi tới Server, và cách để Server phản hồi các yêu cầu này. Các đặc trưng cơ bản Có 3 đặc trưng cơ bản mà làm HTTP trở thành một giao thức đơn giản nhưng đầy sức mạnh:  HTTP là giao thức connectionless (kết nối không liên tục): Client của HTTP, ví dụ: một trình duyệt khởi tạo một yêu cầu HTTP và sau đó một yêu cầu được tạo ra, Client ngắt kết nối từ Server và đợi cho một phản hồi. Server xử lý yêu cầu và thiết lập lại sự kết nối với Client để gửi phản hồi trở lại. http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 6
  7. http://vietjack.com/http/index.jsp Copyright © vietjack.com  HTTP là một phương tiện độc lập: Nó nghĩa là, bất kỳ loại dữ liệu nào cũng có thể được gửi bởi HTTP miễn là Server và Client biết cách để kiểm soát nội dung dữ liệu. Nó được yêu cầu cho Client cũng như Server để xác định kiểu nội dung bởi sử dụng kiểu MIME thích hợp.  HTTP là stateless: Như đã được đề cập ở trên, HTTP là connectionless và nó một kết quả trực tiếp là HTTP trở thành một giao thức Stateless. Server và Client biết về nhau chi trong một yêu cầu hiện tại. Sau đó, cả hai chúng nó quên tất cả về nhau. Do bản chất của giao thức, cả Client và các trình duyệt có thể giữ lại thông tin giữa các yêu cầu khác nhau giữa các trang web. HTTP/1.0 sử dụng một kết nối mới cho mỗi trao đổi Yêu cầu/Phản hồi (Request/Reponse), trong khi mà kết nối của HTTP/1.1 có thể được sử dụng cho một hoặc nhiều trao đổi Yêu cầu/Phản hồi. Cấu trúc cơ bản Sơ đồ dưới đây chỉ cấu trúc rất đơn giản của một ứng dụng web và miêu tả vị trí của HTTP: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 7
  8. http://vietjack.com/http/index.jsp Copyright © vietjack.com Giao thức HTTP là một giao thức Yêu cầu/Phản hồi dựa trên cấu trúc Client/Server, nơi mà các trình duyệt web, các thiết bị tìm kiếm,… hoạt động như các Client, và các Server web hoạt động như một Server. Client Client gửi một yêu cầu tới Server theo mẫu của một phương thức yêu cầu, URI, và phiên bản giao thức, được theo bởi một thông báo MIME chứa các bộ chỉnh sửa yêu cầu, thông tin Client, và nội dung đối tượng có thể qua một kết nối TCP/IP. Server Server phản hồi với một dòng trạng thái, bao gồm phiên bản giao thức của thông báo và một code thành công hoặc lỗi, theo sau bởi một thông báo MIME chứa thông tin Server, thông tin thực thể đa phương tiện và nội dung đối tượng có thể. Các tham số trong HTTP Chương này liệt kê một số các Tham số giao thức HTTP và cú pháp của chúng mà theo đó chúng được sử dụng trong giao tiếp. Ví dụ, định dạng ngày tháng, định dạng URL, …. Điều này sẽ giúp bạn trong việc xây dựng yêu cầu của bạn và các thông tín phản hồi trong khi viết các chương trình Client hoặc Server. Bạn sẽ thấy sự hữu ích hoàn toàn của những tham số này trong các chương kế tiếp trong khi học tập về cấu trúc thông báo cho các yêu cầu và các phản hồi HTTP. Phiên bản HTTP HTTP sử dụng một sơ đồ đánh số . để chỉ phiên bản của giao thức. Phiên bản của một thông báo HTTP được chỉ bởi một trường HTTP-Version trong dòng đầu tiên. Tại đây là cú pháp chung của việc xác định số phiên bản HTTP: HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT Ví dụ HTTP/1.0 or HTTP/1.1 http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 8
  9. http://vietjack.com/http/index.jsp Copyright © vietjack.com Uniform Resource Identifiers - Bộ nhận diện nguồn tài nguyên đồng nhất URI là một chuỗi được định dạng, nhạy cảm với chữ hoa-thường (case-insentive) theo một cách đơn giản chứa tên, vị trí,.. để xác định một nguồn, ví dụ, một website, một dịch vụ web, …. Một cú pháp chung của URI được sử dụng cho HTTP như sau: URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]] Ở đây, nếu port là trống hoặc không được cung cấp, thì port 80 được cho là cho HTTP và một abs_path trống là tương đương với một abs_path là “/”. Các ký tự khác trong các bộ thiết lập reserved và unsafe là tương đương với mã hóa “%” HEX HEX” của chúng. Ví dụ Dưới đây là 3 ví dụ về URI mà tương đương nhau: http://abc.com:80/~smith/home.html http://ABC.com/%7Esmith/home.html http://ABC.com:/%7esmith/home.html Các định dạng Ngày/Thời gian Tất cả các nhãn Ngày/Thời gian HTTP Phải được biểu diễn trong Greenwich Mean Time (GMT), không có sự ngoại trừ. Các ứng dụng HTTP được cho phép để sử dụng 3 nhãn đại diện Ngày/Thời gian sau: Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format Các bộ ký tự Chúng ta sử dụng các bộ ký tự để xác định các thiết lập ký tự mà Client ưa thích. Nhiều bộ thiết lập ký tự có thể được liệt kê riêng biệt bởi các dấu phảy. Nếu một giá trị là không được xác định, mặc định là US-ASII. Ví dụ Dưới đây là các bộ ký tự có hợp lệ: US-ASCII http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 9
  10. http://vietjack.com/http/index.jsp Copyright © vietjack.com or ISO-8859-1 or ISO-8859-7 Mã hóa nội dung Một giá trị mã hóa nội dung chỉ rằng một thuật toán mã hóa đã được sử dụng để mã hóa nội dung trước khi truyền nó tới mạng. Mã hóa nội dung được sử dụng lần đầu để cho phép một tài liệu để được nén hoặc ngoài ra được truyền tải mà không thất lạc sự nhận diện. Tất cả các giá trị mã hóa nội dung là không phân biệt kiểu chữ (case-insensitive). HTTP/1.1 sử dụng các giá trị mã hóa nội dung trong các trường Accept-Encoding và Content-EncodingHeader mà chúng ta sẽ quan sát trong các chương kế tiếp. Ví dụ Dưới đây là các sơ đồ mã hóa hợp lệ: Accept-encoding: gzip or Accept-encoding: compress or Accept-encoding: deflate Các kiểu đa phương tiện (media types) HTTP sử dụng các Kiểu phương tiện Internet trong các trường Content-Type và Accept để cung cấp dữ liệu mở và có thể mở rộng. Tất cả các giá trị kiểu phương tiện được đăng ký với IANA (Internet Assigned Number Authority). Cú pháp chung để xác định kiểu phương tiện như sau: media-type = type "/" subtype *( ";" parameter ) http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 10
  11. http://vietjack.com/http/index.jsp Copyright © vietjack.com Các thuộc tính type, subtype, và parameter là case-insensitive. Ví dụ Accept: image/gif Các thẻ ngôn ngữ HTTP sử dụng các thẻ ngôn ngữ trong các trường Accept-Language và Content-Language. Một thẻ ngôn ngữ bao gồm một hoặc nhiều phần: Một thẻ ngôn ngữ sơ cấp và một dãy các thẻ phụ: language-tag = primary-tag *( "-" subtag ) Các khoảng trắng không được cho phép trong thẻ và tất cả các thẻ là case-insentive. Ví dụ Các thẻ ví dụ bao gồm: en, en-US, en-cockney, i-cherokee, x-pig-latin Hai chữ primary-tag là một chữ viết tắt cho ngôn ngữ trong ISO-639 và hai ký tự đầu tiên trong thẻ phụ subtag là mã quốc gia. Message trong HTTP HTTP được xây dựng trên cơ sở mô hình cấu trúc Client-Server và giao thức Stateless các Yêu cầu/Phản hồi mà điều hành bởi việc trao đổi các thông báo (Message) dọc theo một kết nối TCP/IP. Một Client là một chương trình (một trình duyệt hoặc bất kỳ Client) mà thiết lập một kết nối tới một Server cho mục đích gửi một hoặc nhiều thông báo yêu cầu HTTP. Một HTTP “Server” là một chương trình (hiểu theo cách chung là một Server web như Apache Server web hoặc Internet Information Services – IIS …) mà chấp nhận các kết nối để phục vụ các yêu cầu HTTP bởi việc gửi các thông báo phản hồi HTTP. HTTP sử dụng URI để nhận diện một nguồn đã cho và để thiết lập một kết nối. Một khi một kết nối được thiết lập, Các Thông báo HTTP được truyền trong một định dạng tương tự như được sử dụng trong thư điện tử Internet Mail [RFC5322] và MIME (Multipurpose Internet Mail Extensions) [RFC2045]. Các thông báo này bao gồm các Yêu cầu từ Client tới Server và các Phản hồi từ Server tới Client mà sẽ theo định dạng sau: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 11
  12. http://vietjack.com/http/index.jsp Copyright © vietjack.com HTTP-message = | ; HTTP/1.1 messages Các yêu cầu HTTP và các phản hồi HTTP sử dụng một định dạng thông báo chung của RFC 822 cho truyền trải dữ liệu được yêu cầu. Định dạng thông báo chung này bao gồm 4 mục:  Một dòng đầu tiên  Không hoặc nhiều trường Header theo sau bởi CRLF.  Một dòng trống (ví dụ: một dòng mà không có gì trước CRLF), chỉ phần cuối của trường Header.   Một thân thông báo tùy ý Trong các mục tiếp theo, chúng ta sẽ giải thích từng mục được sử dụng trong thông báo HTTP. Dòng đầu thông báo (start-line) Một dòng đầu sẽ có cú pháp chung như sau: start-line = Request-Line | Status-Line Chúng ta sẽ bàn luận Request-Line và Status-Line trong khi thảo luận về các thông báo Yêu cầu HTTP và Phản hồi HTTP tương ứng. Bây giờ, chúng ta xem xét một số ví dụ về dòng bắt đầu trong trường hợp yêu cầu và phản hồi http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 12
  13. http://vietjack.com/http/index.jsp Copyright © vietjack.com GET /hello.jsp HTTP/1.1 (This is Request-Line sent by the client) HTTP/1.1 200 OK (This is Status-Line sent by the server) Các trường Header Các trường Header cung cấp thông tin được yêu cầu về yêu cầu hoặc phản hồi, hoặc về đối tượng được gửi trong thân thông báo. Có 4 kiểu của Header trong các thông báo HTTP:  Kiểu chung (General-Header): Các trường Header này có khả năng ứng dụng chung cho cả các thông báo yêu cầu và phản hồi.  Kiểu yêu cầu (Request-Header): Các trường Header này chỉ có khả năng áp dụng cho các thông báo yêu cầu.  Kiểu phản hồi (Response-Header): Các trường Header này chỉ có khả năng áp dụng cho các thông báo phản hồi.  Kiểu thực thể (Entity-Header): Các trường này xác định thông tin về thân-thực thể hoặc, nếu không có phần thân nào hiển thị, về nguồn được nhận diện bởi yêu cầu. Tất cả các Header được đề cập ở trên theo một định dạng chung và mỗi một trường Header bao gồm một tên được theo sau bởi một dấu hai chấm (:) và giá trị trường như sau: message-header = field-name ":" [ field-value ] Dưới đây là ví dụ về các trường Header đa dạng: User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 13
  14. http://vietjack.com/http/index.jsp Copyright © vietjack.com Phần thân thông báo Phần thân thông báo là tùy ý cho một thông báo HTTP nhưng nếu nó là có sẵn, thì khi đó nó được sử dụng để mang phần thân được liên kết với yêu cầu hoặc phản hồi. Nếu phần thân thực thể được liên kết, thì sau đó thường các dòng Content-Type và Content-Length xác định bản chất của phần thân được liên kết. Một phần thân thông báo là phần mà mang dữ liệu yêu cầu HTTP thực sự (bao gồm dữ liệu mẫu và được tải lên,…) và dữ liệu phản hồi HTTP từ Server (bao gồm các file, ảnh, …). Dưới đây là nội dung đơn giản của một phần thân thông báo: Hello, World! Hai chương tới chúng ta sẽ bàn về cách sử dụng của các khái niệm được giải thích để chuẩn bị Các yêu cầu HTTP và Các phản hồi HTTP. Yêu cầu (Request) trong HTTP Một Client gửi một yêu cầu HTTP tới một Server trong mẫu một thông báo yêu cầu mà bao gồm định dạng sau:  Một dòng yêu cầu  Không hoặc nhiều hơn trường Header (General|Request|Entity) được theo sau bởi CRLF. http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 14
  15. http://vietjack.com/http/index.jsp Copyright © vietjack.com  Một dòng trống (ví dụ: một dòng không có gì đằng trước CRLF) chỉ phần kết thúc của trường Header.   Một phần thân thông báo tùy ý Các phần dưới giải thích cách sử dụng của mỗi đối tượng trong thông báo yêu cầu HTTP. Dòng Yêu cầu Dòng Yêu cầu bắt đầu với một thủ tục method, được theo sau bởi một Request-URI và phiên bản giao thức, và kết thúc với CRLF. Các yếu tố được phân biệt riêng rẽ bởi các ký tự khoảng trống SP. Request-Line = Method SP Request-URI SP HTTP-Version CRLF Dưới đây thảo luận về mỗi phần được đề cập trong Dòng Yêu cầu. Method yêu cầu method yêu cầu chỉ phương thức để được thực hiện trên nguồn được nhận diện bởiRequest- URI đã cung cấp. Method là case-intensive và nên luôn luôn được đề cập trong chữ hoa. Bảng dưới đây liệt kê tất cả các method được hỗ trợ trong HTTP/1.1. STT Phương thức và Miêu tả 1 GET GET được sử dụng để lấy lại thông tin từ Server đã cung cấp bởi sử dụng một URI đã cung cấp. Các yêu cầu sử dụng GET nên chỉ nhận dữ liệu và nên không có ảnh hưởng gì tới dữ liệu. http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 15
  16. http://vietjack.com/http/index.jsp Copyright © vietjack.com 2 HEAD Tương tự như GET, nhưng nó truyền tải dòng trạng thái và khu vực Header. 3 POST Một yêu cầu POST được sử dụng để gửi dữ liệu tới Server, ví dụ, thông tin khách hàng, file tải lên, …, bởi sử dụng các mẫu HTML. 4 PUT Thay đổi tất cả các đại diện hiện tại của nguồn mục tiêu với nội dung được tải lên. 5 DELETE Gỡ bỏ tất cả các đại diện hiện tại của nguồn mục tiêu bởi URI. 6 CONNECT Thiết lập một tunnel tới Server được xác định bởi URI đã cung cấp. 7 OPTIONS Miêu tả các chức năng giao tiếp cho nguồn mục tiêu. 8 TRACE Trình bày một vòng lặp kiểm tra thông báo song song với path tới nguồn mục tiêu. Request-URI Request-URI là một Bộ nhận diện Nguồn Đồng nhất (URI) và xác định nguồn mà áp dụng yêu cầu. Dưới đây là các mẫu thường được sử dụng để xác định một URI: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 16
  17. http://vietjack.com/http/index.jsp Copyright © vietjack.com Request-URI = "*" | absoluteURI | abs_path | authority STT Phương thức và Miêu tả 1 Một dấu * được sử dụng khi một yêu cầu HTTP không áp dụng tới một nguồn cụ thể, nhưng tới chính Server đó, và chỉ được cho phép khi phương thức được sử dụng không cần thiết áp dụng tới một nguồn. Ví dụ: OPTIONS * HTTP/1.1 2 absoluteURI được sử dụng khi một yêu cầu HTTP đang được tạo ra cho một sự ủy nhiệm. Sự ủy nhiệm được yêu cầu chuyển tới yêu cầu hoạc dịch vụ từ một cache hiệu lực, và trả lại phản hồi. Ví dụ: GET http://www.w3.org/pub/WWW/TheProject.jspl HTTP/1.1 3 Mẫu phổ biến nhất của Request-URI được sử dụng để xác định một nguồn trên một Server hoặc gateway ban đầu. Ví dụ, một Client mong muốn lấy được một nguồn một cách trực tiếp từ Server ban đầu sẽ tạo một kết nối TCP tới port 80 của host www.w3.org và gửi các dòng sau: GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org Ghi chú rằng, đường truyền tuyệt đối không thể là trống rỗng; nếu không gì được trình bày trong URI ban đầu, nó Phải được cung cấp như là “/” (Server root). Các trường Header Yêu cầu Chúng ta sẽ học General-Header và Entity-Header trong một chương riêng khi chúng ta sẽ học về các trường Header. Bây giờ, chúng ta xem các trường Header yêu cầu là gì: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 17
  18. http://vietjack.com/http/index.jsp Copyright © vietjack.com Các trường Request-Header cho phép Client truyền thông tin thêm về yêu cầu, và về chính Client đó, tới Server. Những trường này hoạt động như các bộ chỉnh sửa yêu cầu. Dưới đây là một danh sách các trường Request-Header quan trọng mà có thể được sử dụng dựa trên sự yêu cầu:  Accept-Charset  Accept-Encoding  Accept-Language  Authorization  Expect  From  Host  If-Match  If-Modified-Since  If-None-Match  If-Range  If-Unmodified-Since  Max-Forwards  Proxy-Authorization  Range  Referer  TE  User-Agent Bạn có thể tự tạo các trường cho mình trong trường hợp bạn đang viết Client và Server cho riêng mình. http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 18
  19. http://vietjack.com/http/index.jsp Copyright © vietjack.com Các ví dụ của Thông báo Yêu cầu Bây giờ chúng ta đặt tất cả những thứ đã học ở trên cùng với nhau để tạo một yêu cầu HTTP để chỉ thị trang hello.htm từ Server chạy trên tutorialspoint.com. GET /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive Tại đây chúng ta không gửi bất cứ yêu cầu dữ liệu tới Server bởi vì chúng ta đang chỉ thị một trang thuần HTML từ Server. Kết nối là General-Header, và phần còn lại của Header là các Header yêu cầu. Ví dụ sau đây chỉ cách để gửi dữ liệu mẫu tới Server bởi sử dụng phần thân thông báo yêu cầu: POST /cgi-bin/process.cgi HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Content-Type: application/x-www-form-urlencoded Content-Length: length Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive licenseID=string&content=string&/paramsXML=string Ở đây, URl được cung cấp /cgi-bin/process.cgi sẽ được sử dụng để xử lý dữ liệu được truyền và theo đó, một phản hồi sẽ được trả lại. Ở đây content-type nói cho Server rằng dữ liệu được truyền là một dữ liệu mẫu web đơn giản và length sẽ là độ dài thực của dự liệu đặt trong phần thân thông báo. Ví dụ sau chỉ cách bạn có thể truyền XML thuần tới Server của bạn. POST /cgi-bin/process.cgi HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: www.tutorialspoint.com Content-Type: text/xml; charset=utf-8 Content-Length: length Accept-Language: en-us Accept-Encoding: gzip, deflate http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 19
  20. http://vietjack.com/http/index.jsp Copyright © vietjack.com Connection: Keep-Alive string Phản hồi (Response) trong HTTP Sau khi nhận và phiên dịch một thông báo yêu cầu, một Server gửi tín hiệu phản hồi với một thông báo phản hồi HTTP.  Một dòng trạng thái (Status-Line)  Không hoặc nhiều hơn các trường Header (General|Response|Entity) được theo sau bởi CRLF.  Một dòng trống (ví dụ: một dòng mà không có gì đằng trước CRLF) chỉ phần kết thúc của các trường Header.   Một phần thân thông báo tùy ý. Các khu vực dưới đây giải thích cách sử dụng của mỗi đối tượng trong một thông báo phản hồi HTTP. Dòng trạng thái Một dòng trạng thái bao gồm phiên bản giao thức được theo sau bởi một mã hóa trạng thái số và cụm từ thuần văn bản được liên kết của nó. http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2