Thông tin tài liệu:
Bài 17: Gửi các request và xử lý response Giao thức HTTPTrước hết chúng ta cùng tìm hiểu hoạt đông của giao thức HTTP truyền thống - Hypertext Transfer Protocol, xem xét các bản tin – message của giao thức này. Thay vì quan tâm đến các bit hay byte, chúng ta để ý đến các từ ngữ (thông báo) được xác định trong đặc tả HTTP và các quy tắc kết hợp chúng lại với nhau. Một HTTP message bắt đầu với một dòng request hay status, tiếp theo có thể là nhiều loại headers và phần message body....
Nội dung trích xuất từ tài liệu:
AJAX toàn tập part 8AJAX – Tương lai của Web 2.0 Bài 17: Gửi các request và xử lý response Giao thức HTTPTrước hết chúng ta cùng tìm hiểu hoạt đông của giao thức HTTP truyền thống - HypertextTransfer Protocol, xem xét các bản tin – message của giao thức này. Thay vì quan tâm đến cácbit hay byte, chúng ta để ý đến các từ ngữ (thông báo) được xác định trong đặc tả HTTP và cácquy tắc kết hợp chúng lại với nhau.Một HTTP message bắt đầu với một dòng request hay status, tiếp theo có thể là nhiều loạiheaders và phần message body.Cấu trúc của HTTP MessageHTTP là một giao thức kiểu client/server; client đưa ra các request, và server sẽ trả lời cácrequest này. Cấu trúc các HTTP message vì thế cũng thay đổi theo yếu tố này. Có một định dạngcho HTTP request và cho các response.HTTP RequestMỗi request bắt đầu với một Request-Line. Dòng này chỉ ra phương thức mà client yêu cầu, tàinguyên, và phiên bản của HTTP mà client có thể hỗ trợ. Request-Line có thể có tiếp sau một haynhiều header và một message body.Một HTTP request bắt đầu với một Request-Line và có thể bao gồm các header và messagebody. Phần header có thể mô tả quá việc truyền dữ liệu, xác định các yêu cầu hay phần messagebody kèm theo.Trích:GET / HTTP/1.1Accept: */*Accept-Language: en-usAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT 5.0)Host: www.ft.comCollection by traibingo 1AJAX – Tương lai của Web 2.0Connection: Keep-AliveRequest-Line chứa ba mục phân biệt, đó là method, uri, và phiên bản HTTP, mỗi mục được phântách bởi một hay nhiều khoảng trống.Một HTTP Request-Line có một phương thức, một địa chỉ định danh tài nguyên (URI), và thôngbáo phiên bản HTTP.Phương thức được xác định trên dòng đầu tiên của Request-Line. HTTP định nghĩa tất cả là 8phương thức. Một HTTP server chỉ được yêu cầu hỗ trợ các phương thức GET và HEAD; nếuchúng hỗ trợ các phương thức HTTP khác, sự hỗ trợ đó phải được gắn với các quy tắc củaHTTP. Đặc tả HTTP cũng có các mở rộng để các phương thức khác có thể được bổ sung trongtương lai.Bảng HTTP Method (Xem file attach bài này)Mục tiếp theo trong Request-Line là Request-uri. Mục này cung cấp địa chỉ định danh tài nguyêncho một tài nguyên. Ví dụ, Request-uri là /, chỉ ra một request cho tài nguyên gốc. Cho cácrequest không yêu cầu một tài nguyên cụ thể (như là TRACE request hay trong một số trườnghợp cả OPTIONS request), client có thể dùng một dấu * cho Request-uri.Mục cuối cùng trong Request-Line là phiên bản HTTP. Như trong ví dụ, phiên bản HTTP là 1.1chứa trong đoạn text HTTP/1.1.Tiếp sau Request-Line, một HTTP request có thể bao gồm một hay nhiều dòng message header.Một message header có thể chứa các loại general header, request header, hoặc entity header.General header áp dụng trong truyền dữ liệu; request header áp dụng cho các request cụ thể, vàentity header áp dụng cho message body trong request.Một HTTP request luôn chứa một dòng trống sau Request-Line và bất kỳ header nào. Nếurequest bao gồm một message body, phần body đi sau một dòng trống. Dòng trống - blank lineCollection by traibingo 2AJAX – Tương lai của Web 2.0rất quan trọng vì server xác định được phần kết của request, hoặc phần kết của header. Không códòng trống, server nhận các message sẽ không biết được các header khác nữa có tiếp tục đượctruyền không.Bài 18HTTP ResponseHTTP Response khá giống với HTTP Request. Dấu hiệu khác biệt duy nhất là response bắt đầuvới một dòng trạng thái status so với Request-Line. Status-Line, cũng giống như Request-Line,chứa ba mục ngăn cách bởi các khoảng trống.Một HTTP response bắt đầu với một Status-Line và có thể chứa các header và một messagebody. Header có thể mô tả quá trình truyền dữ liệu, xác định response, hoặc phần body kèm theo.Dòng bắt đầu với phiên bản cao nhất của HTTP mà server hỗ trợ.Trích:HTTP/1.1 200 OKDate: Sun, 08 Oct 2000 18 12 GMTServer: Apache/1.3.6 (Unix)Keep-Alive: timeout=5, max=120Connection: Keep-AliveContent-Type: text/html…HTTP Status-Line bắt đầu với chỉ báo HTTP, mã trạng thái, và một đoạn text mô tả response.Hai mục còn lại trong Status-Line là Status-Code và Reason-Phrase. Status-Code là một bộ ba kítự chỉ báo kết quả của request. Status-Code phổ biến nhất là 200. Giá trị này thông báo yêu cầucủa client thành công.Phân loại HTTP Status Code: (Xem file attach)Header FieldHTTP request và response có thể có một hay nhiều message header. Message header bắt đầu vớitên trường và dấu (“:”). Trong một số trường hợp, chỉ có tên trường trong phần header. Tronghầu hết các trường hợp khác header chứa các thêm thông tin khác nữa, các thông tin này đi saudấu “:”. Một message header kết thúc ở cuối dòng, nhưng nếu một client cần biểu di ...