Tiểu luận môn mạng máy tính Giao thức http Đặt vấn đề Tổng quan về HTTP Nguyên lý hoạt động Cấu trúc bản tin HTTP HTTP ra đời vào năm 1990 và hiện tại đã có version 1.1 HTTP là tên viết tắt của từ Hyper Text Transfer Protocol: Giao thức truyền dẫn siêu văn bản.
Trang 2• Đặt vấn đề
• Tổng quan về HTTP
• Nguyên lý hoạt động
• Cấu trúc bản tin HTTP
Trang 31 Đặt vấn đề
• Bạn đã bao giờ thử tìm kiếm từ khóa “Bách Khoa” trên web ?
http://www.google.com.vn/#q=bach+khoa&fp=1&cad=b
với hơn 10 triệu kết quả
• Giao thức bạn nhiều nhất hằng ngày là giao thức http
Trang 52.1 HTTP là gì ?
• HTTP ra đời vào năm 1990 và hiện tại đã có version 1.1
• HTTP là tên viết tắt của từ Hyper Text Transfer Protocol: Giao thức truyền dẫn siêu văn bản
– Hypertext: Văn bản bao gồm những con trỏ chỉ tới văn bản lưu dữ thông tin nhỏ khác
– HTTP: là hình thức được sử dụng chính trong hệ thống World Wide Web (www) trên toàn thế giới
– HTTP gắn liền với HTML
Trang 62.2 HTTP trong mô hình TCP/IP
Trang 72.3 Đặc điểm giao thức http
• Giao thức dựa trên TCP/IP socket
• Là giao thức hướng trao đổi
• Không lưu giữ trạng thái (stateless): sử dụng kết nối TCP mới cho mỗi lần trao đổi
• Phần trình diễn tách biệt khỏi phần nội dung
– Phần trình diễn điều khiển bởi trình duyệt
– Phần nội dung cung cấp bởi server.
Trang 83 Nguyên lý hoạt động của
http
Trang 93.1 Nguyên lý hoạt động
• Hệ thống HTTP cơ bản: Server-Client
Kết nối TCP, port 80 Đóng kết nối TCP
Trang 103.1 Nguyên lý hoạt động
• Trang web : gồm nhiều nguồn tin kết hợp
• Các nguồn tin được gửi lần lượt tới browser
• Có 2 kiểu kết nối để truyền các nguồn tin:
– Kết nối liên tục (persistent connection)
– Kết nối không liên tục (non persistent connection)
Trang 11Kết nối không liên tục
1. Browser mở kết nối TCP tới port 80 của server
2. Browser gửi bản tin yêu cầu http
3. Server nhận yêu cầu, định vị các thực thể và gửi trả lời
4. Server đóng kết nối TCP
5. Browser nhận bản tin trả lời, lưu giữ thực thể
6. Trình duyệt lặp lại các bước từ 1 -5 cho mỗi thực thể cần thiết
Trang 12Kết nối liên tục
• Giống kết nối không liên tục nhưng ở bước 4 server không đóng kết nối TCP cho đến khi nhận hết yêu cầu từ Browser
• Ưu điểm:
– Tiết kiệm thời gian tính toán ở các router và host
– Bản tin yêu cầu và trả lời http có thể được pipeline
– Giảm thiểu tắc nghẽn mạng
– Giảm trễ cho các yêu cầu phía sau
• Nhược điểm ?
Trang 133.2 Mô hình hệ thống trung gian
Có thêm các thành phần
Proxy : cải thiện tốc độ thực thi , có cơ chế cache trang
Gateway: đảm bảo an ninh, được sử dụng tại các tường lửa
Web cache serve
Trang 154.1 Cấu trúc bản tin Request
Trang 16Một mẫu bản tin Request
Trang 17• Format của Request-Line có dạng sau
– Method SP Request-URI SP HTTP-Version CR LF
• Request-Line có ba thành phần chính
– Method
– Request-URI
– HTTP-Version
Trang 18• http/1.0 chỉ có ba methods yêu cầu
– GET : yêu cầu server trả lại nội dung
– HEAD : yêu cầu server trả lại tiêu đề
– POST : yêu cầu server xử lý tài liệu ở dạng kịch bản và gửi một ít dữ liệu tới client.
• http/1.1 có thêm những methods yêu cầu sau
– PUT : yêu cầu server được phép upload tài liệu lên web server
– DELETE : yêu cầu server được phép xóa dữ liệu từ web server
Trang 19• Request-URI: Uniform Resource Identifier
– Request-URI = "*" | absoluteURI | abs_path | authority
• Có 4 tùy chọn trong Request-URI phụ thuộc vào bản chất request
– Option "*" : request không được đưa tới tài nguyên
– Option absoluteURI:
GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1
– Option abs_path:
GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org
– Option authority: chỉ được sử dụng bởi CONNECT method
Trang 20Request Header Fields
Trang 21Entity Body
Trang 22Virtual Hosts
• Với HTTP 1.1, server chứa một địa chỉ IP có thể có multi-homed
– “www.cs.wmich.edu” and “www.ece.wmich edu” có thể tồn tại trên cùng một server Gọi là virtual hosting
– Không có cơ chế này, chúng ta phải sử dụng hai địa chỉ IP khác nhau
• Một HTTP request phải chỉ ra được tên host cho request mà được định trước
Trang 23Virtual Hosts (2)
• Có Virtual hosting
– Giảm chi phí phần cứng
– Mở rộng khả năng hỗ trợ nhiều server
– Tạo ra sự cân bằng vể dữ liễu tải xuống và xác định dung lượng dễ hơn nhiều.
• Không có Virtual hosting
– Mỗi tên host yêu cầu một địa chỉ IP duy nhất
– Chúng ta nhanh chóng cạn kiệt về địa chỉ IP
Trang 244.2 Cấu trúc bản tin Response
Trang 25Cấu trúc bản tin Response
Trang 26Status code
• Các mẫu status trả về là một số tự nhiên 3 chữ số
– 1xx: Thông tin Chỉ là tạm thời
– 2xx: Thành công
– 3xx: Chuyển hướng
– 4xx: Lỗi ở client
– 5xx: Lỗi ở server
Trang 27Status code
• Ví dụ: client muốn truy cập vào /foo
• Server thử tìm địa chỉ này và hiểu rằng có thể client muốn truy cập vào thư mục /foo/ và trả lời client
– Status code: 302 moved
– Chuyển sang địa chỉ /foo/
• Nhận được response này phần lớn browser đều tự động truy cập vào địa chỉ mới
Trang 284.3 Client – server: authorization
• Mục tiêu: điều khiển truy cập vào server
• Do kết nối server – client là kết nối
stateless
• Mỗi lần gửi yêu cấu client gửi
authorization: name, password
• Nếu không server sẽ loại bỏ quyền truy
cập và gửi tín hiệu WWW authenticate