Tìm hiểu về giao thức http Các nội dung Web lưu trên các Web Server Web server dùng chuẩn HTTP để giao tiếp Client gửi HTTP request, Server gửi HTTP respond HTTP Messages FLOW như các con sông Luồng dữ liệu là downstream bất kể trong request messages hay respond messages Bộ phận gởi Messages là upstream so với bộ phận nhận
Trang 1Giao thức HTTP
Trình bày: Nguyễn Đăng Khoa
Trang 2N i dung ộ
Trang 4- Các nội dung Web lưu trên các Web Server
- Web server dùng chuẩn HTTP để giao tiếp -Client gửi HTTP request, Server gửi HTTP respond
HTTP & Web Server
Trang 5URI & URL
URI – Uniform Resource Identifier URL – Uniform Resource Location
URI & URL
Trang 7HTTP transactions HTML transactions
Trang 8The Flow of Messages
Trang 9HTTP Messages HTTP Messages
Trang 10HTTP Headers HTTP Header
Trang 11HTTP Headers HTTP Header
Trang 12User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1)
Gecko/2008070208 Firefox/3.0.1 (.NET CLR 3.5.30729)
Trang 13X-Cache: MISS from vweb.hcmuns.edu.vn
Via: 1.0 vweb.hcmuns.edu.vn:80 (squid/2.6.STABLE16)
Connection: keep-alive
Trang 14Làm sao để xem HTTP header?
Trang 15Extra
Trang 16HTTP Methods
Trang 17HTTP Messages – Methods
ít phổ biến hơn
HTTP Methods
Trang 18HTTP Messages – Status Codes
Status Code
Trang 19HTTP Messages
(Methods & Status Codes)
Mỗi thông điệp HTTP request đều có
một Methods Mỗi thông điệp HTTP respond đều có một status code
Status Code
Trang 20HTTP Messages – Status Codes
Overall range Defined range Category
100-199 100-101 Cung cấp tin tức200-299 200-206 Thành công300-399 300-305 Chuyển sang nơi khác400-499 400-415 Lỗi client
500-599 500-505 Lỗi server
HTTP Status Codes được chia làm 5 loại:
Status Code
Trang 21Các status code chính
Status Code
Trang 22Các status code chính
Status Code
Trang 23Các status code chính
Status Code
Trang 24Caching
Trang 25Caching
Trang 26Caching
Trang 27Caching
Trang 28- Cho dù tốc độ truyền ở mức lí tưởng (tốc độ ánh sáng – 186 ngàn dặm/giây), nếu khoảng cách truyền
quá xa, hiện tượng delay vẫn có thể xảy ra.
- Caches giải quyết khá tốt vấn đề này
Caching
Trang 29Xảy ra khi thình lình có lượng lớn truy cập
Caching
Trang 30Caching
Trang 31Caching
Trang 32Cache Topologies
Cache Topologies
Trang 33Cache Topologies
Cache Topologies
Trang 34Cache Topologies
Cache Topologies
Trang 35Cache Processing Steps
Cache Progressing Steps
Trang 36Cache GET request flowchart
Cache Get Request Flowchart
Trang 37Expiration Dates and Ages
HTTP cho phép một server thêm phần
"expiration date" vào mỗi tài liệu
Expiration Dates and Ages
Trang 38Revalidation Method
Since: <cached last-modified
If-Modified-date>
Revalidation Method
Trang 39Cache Controls
Cache Control
Trang 40Appendix A: Status Code
Trang 41Status Code Reason Phrase Meaning
100 Tiếp tục Chỉ ra rằng một phần message đã được
server nhận Và client nên tiếp tục gởi
tiếp
101 Chuyển giao thức Chỉ ra rằng server đang thay đổi giao
thức được xác định bởi client bằng giao thức được liệt kê trong Upgrade header
Trang 43Status
Code Reason phrase Meaning
200 OK Request ok, phần body của đối tượng gởi về chứa tài nguyên
được yêu cầu
201 Created Đối với các yêu cầu tạo trên server (vd PUT) Phần body của
phản hồi chứa các URL khác nhau tham chiếu tới đối tượng đã
tạo
202 Accepted Request đã được chấp thuận, nhưng server chưa thực hiện bất
cứ hành động gì Phần body của phản hồi chứa đoạn mô tả tình
trạng request và ước lượng thời gian hoàn thành
Trang 44Status
Code Reason phrase Meaning
203
Non-Authoritative Information
Thông tin chứa trong header không phải nguyên gốc mà là một bản copy của resource Có thể xảy ra khi một trạm trung gian
có bản copy của resource nhưng không thể hay không chứng
tụực header mà nó gởi
204 No Content Repond message chứa header và một dòng trạng thái, nhưng
không có phần body Chủ yếu dùng update browser (vd, refresh
Trang 46Status
Code Reason phrase Meaning
300 Multiple
Choice Phản hồi khi client gởi một request có liên quan đến nhiều resource, ví dụ một server chứa một phiên bản English và
French Khi này respond sẽ bao gồm 2 lựa chọn
301 Moved
Permanently Được dùng khi resource đã bị chuyển đi nơi khác Respond thường bao gồm URL mới của resource đó
302 Found Giống 301 code, tuy nhiên, client nên dùng URL được trả về
trong Location header để định vị trí resource tạm thời
Trang 47Status
Code Reason phrase Meaning
303 See Other Báo client rằng cần truy cập resource bằng URL khác
304 Not Modified Nếu client thực hiện một request có điều kiện, như là GET
nếu resource không thay đổi gần đây, thì code này chỉ ra là
resource không bị thay đổi
305 Use Proxy Dùng khi resource chỉ có thể truy cập qua proxy, vị trí của
proxy có trong Location header
306 (Unused) Hiện không được sử dụng
307 Temporaty
Redirect
Giống status code 301, client nên sử dụng URL được phản hồi trong Location header để định vị trí resource tạm thời
Trang 48Status
Code Reason phrase Meaning
400 Bad Request Báo client rằng họ gởi request không đúng
401 Unauthorized Respond với một header thích hợp yêu cầu client chứng
thực mình có quyền truy cập tài nguyên
402 Payment
Required Hiện tại chưa được dùng, nhưng thiết lập cho sau này.
403 Forbidden Chỉ ra request bị từ chối bởi server Server có thể thêm đoạn
mô tả nguyên nhân từ chối
404 Not Found Chỉ ra rằng server không thể tìm thấy URL được yêu cầu
Trang 49Status
Code Reason phrase Meaning
405 Method Not
Allowed Dùng khi request thực hiện với một phương thức mà URL được request không hỗ trợ Phản hồi lại những phương
thức được cho phép (Trong Allow header)
406 Not
Acceptable Dùng khi server không có resource có định dạng hợp với request của client
407 Proxy
Authentication Required
Giống 401 status code, nhưng cho các proxy yêu cầu chứng
thực người dùng
408 Request
Timeout Nếu client tốn quá nhiều thời gian để hoàn tất request, server có thể gởi lại status code này và đóng kết nối
409 Conflict Chỉ ra vài xung đột request có thể gây ra trên resource
Trang 50Status
Code Reason phrase Meaning
410 Gone Tương tự 404, trừ việc server đã từng có resource
411 Length Required Dùng khi server yêu cầu header Content Length trong
414 Request URI Too
Long Sử dụng khi client gởi một request có URI quá lớn so với khả năng hoặc mong muốn xử lí của server
415 Unsupported
Media Type Sử dụng khi client gởi một thực thể có loại tập tin mà server không hiểu hay không hỗ trợ
416 Requested Range
Not Satisfiable nguyên và khoảng đó không hợp lệ hay không phù hợpDùng khi request message yêu cầu một khoảng tài
417 Expectation Failed Dùng khi request chứa một Expectation mà server
không đáp ứng
Trang 52Implemented Sử dụng khi client gởi một request nằm ngoài khả năng của server
502 Bad Gateway Sử dụng khi một server hoạt động như một proxy hay
gateway gặp một phản hồi không có thật từ mắt xích kế tiếp trong chuỗi request respon (ví dụ nếu nó không thể kết nối
tới gateway phía trên của nó
503 Service
Unavailable Chỉ ra hiện tại server không thể phục vụ theo yêu cầu, nhưng sẽ trở lại vào thời điểm khác Nếu server biết thời điểm này,
nó thêm Retry-After header trong respond message