Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

HTTP (Hypertext Transfer Protocol)

1. Định nghĩa:
Giao thức truyền các định dạng dữ liệu khác nhau giữa máy chủ và máy khách
- Plaintext
- Hypertext
- Images
- Video
- Sound
Meta-information cũng được chuyển giao
2. Uniform Resources:
URL
- Uniform Resource Locator
- Đề cập đến một giao thức hiện có
+ Ex :http:, wais:, ftp:, mailto:, gopher:, news:
- Trỏ tới một tài liệu trên một máy chủ cụ thể
URN
- Uniform Resource Name
- Mã định danh liên tục, duy nhất trên toàn cầu
+ Independent of location
URI
– Uniform Resource Identifier
– Bộ sưu tập của URL và URN
<scheme> : //<host> :<port> /<path> ;<parameters> ?<query> #<fragment>
– Scheme Giao thức bạn đang sử dụng
– Host Tên máy chủ hoặc số IP
– Port Số cổng TCP mà máy chủ giao thức đang sử dụng
– Path Tham chiếu đường dẫn và tên tệp của đối tượng trên máy chủ
– Parameters Bất kỳ thông số cụ thể nào mà đối tượng cần
– Query Chuỗi truy vấn cho chương trình CGI
– Fragment Tham chiếu đến một tập hợp con của một đối tượng
3. URL and HTTP
- Tất cả phần của URL, ngoại trừ parameters được sử dụng với http
- Scheme và host có thể được bỏ qua khi đối tượng được tham chiếu nằm trên
cùng một máy với máy tài liệu giới thiệu
- Cổng có thể được bỏ qua miễn là máy chủ được tham chiếu đang chạy trên
cổng được liệt kê trong tệp /etc/services của bạn
Ex: Thường là cổng 80.
- Đường dẫn đầy đủ được sử dụng khi đề cập đến máy chủ khác
+ Đường dẫn tương đối trên cùng một máy chủ
Tham chiếu với đường dẫn tương đối là một phần URL
- Truy vấn chuyển tham số tới CGI
- Đoạn nhảy tới nhãn trong một trang
Ex : http://www.x.y/z#foo
4. Web Documents
- Html
- ASCII text
- Preformatted
Ex: postscript
- Images
Ex:+GIF
+JPEG
- Video
Ex: MPEG
- VRML
- Java
5. Giao tiếp
- Máy chủ cho khách hàng biết loại thông tin nào sẽ đến trước khi thông tin đến
+ Phần mở rộng tập tin như :
.html , .htm
.txt
.ps
.au
.gif , .tiff , .jpeg
.mpeg
.vrml , .wrl
.java
- Văn bản và hình ảnh nội tuyến
+ Các đối tượng riêng biệt
- Trình duyệt máy khách có thể tùy chọn gửi danh sách các định dạng mà nó có
thể chấp nhận
- Tài liệu có thể là một chương trình
+ Máy chủ web thực thi chương trình và gửi kết quả cho máy khách
+ Thuật ngữ chung cho chương trình này là tập lệnh, cổng hoặc tập lệnh
cổng
6. Tập lệnh (Scipts)
- Dịch đầu vào từ khách hàng
- Gọi các chương trình khác
- Dịch đầu ra từ các chương trình và trả về cho khách hàng

7. Cổng (Gateways)
Dịch từ giao thức hoặc dịch vụ này sang giao thức hoặc dịch vụ khác
+ HTTP / database query
+ Database query results / HTTP
8. HTTP 1.0
- Berners Lee, Fielding, Nielsen - 1995
- Được sử dụng trong các hệ thống hypermedia được phân phối trên các mạng
- Xác định cuộc hội thoại yêu cầu-phản hồi
a. Chương trình yêu cầu (client) thiết lập kết nối với chương trình nhận
(server)
b. Client gửi yêu cầu tới server
HTTP gửi yêu cầu tới server
- Xác định cuộc hội thoại yêu cầu-phản hồi
- Máy chủ trả lời bằng phản hồi
http chỉ định cú pháp
- Không xử lý kết nối mạng hoặc cách truyền thông tin
TCP/IP thực hiện điều này
- Yêu cầu HTTP
– Phương thức (Method)
– URI
– Phiên bản giao thức (Protocol version)
– Các thông tin khác tùy chọn (Optional other information)
– Phương thức [URI yêu cầu] HTTP/1.0 <CRLF>
Method
– Get
Trả về đối tượng
– Head
Trả về thông tin về đối tượng
– Post
Gửi thông tin được lưu trữ trên máy chủ hoặc làm đầu vào cho tập
lệnh
– Put
Gửi bản sao mới của đối tượng hiện có đến máy chủ
Thường không được phép
– Delete
Xóa đối tượng
Thường không được phép
Other information
– User Agent (Đại lý người dùng)
Loại trình duyệt
– If-Modified-Since
Chỉ trả về đối tượng nếu gần đây hơn ngày đã cho
Ngược lại trả về mã trạng thái 304
– Accept (Chấp nhận)
Các loại Mime mà trình duyệt có thể chấp nhận
– Tiện ích mở rộng thư Internet đa năng
text/plain
text/html
application/postscript
image/gif
image/jpeg
audio/basic
video/mpeg
x-world/x-vrml
– Authorization (Ủy quyền)
User password
GET /X/Y/Z.HTML HTTP 1.0
User Agent: Prodigy-WB/1.3e
Accept: text/plain
Accept: text/html
Accept: application/postscript
Accept: image/gif
– Accept: */*
Phản hồi HTTP
– Status line (Dòng trạng thái)
HTTP-version Status-code Reason
Status-codes 1xx – Informational (thông tin)
– Để dành mai sau dùng
Status-codes 2xx – Success (thành công)
– Hành động đã được nhận, hiểu và chấp nhận thành công
200 OK
201 Lệnh POST thành công
202 Yêu cầu được chấp nhận
203 Yêu cầu GET hoặc HEAD được thực hiện
204 Không có nội dung
Status-codes 4xx - Client error (lỗi máy khách)
– Yêu cầu có cú pháp sai hoặc không thể thực hiện được
400 Yêu cầu xấu từ khách hàng
401 Yêu cầu trái phép
402 Yêu cầu thanh toán cho yêu cầu
403 Truy cập tài nguyên bị cấm
404 Không tìm thấy tài nguyên
405 Phương pháp không được phép đối với tài nguyên
406 Resource type not acceptable
Status-codes 5xx - Server error (lỗi máy chủ)
– Máy chủ không thực hiện được yêu cầu có vẻ hợp lệ
500 Lỗi máy chủ nội bộ
501 Phương pháp không được triển khai
502 Cổng xấu hoặc quá tải máy chủ
503 Dịch vụ không khả dụng/hết thời gian chờ cổng
504 Thời gian chờ của cổng phụ/máy chủ
– Description of information (Mô tả thông tin)
Server Type of server
Date Date and time
Content-Length Number of bytes
Content-Type Mime type
Content-Language English, for example
Content-Encoding Data compression
Last-Modified Date when last modified
Expires Date when file becomes invalid
Các vấn đề
– HTTP không trạng thái
Mỗi yêu cầu yêu cầu kết nối TCP riêng biệt
Máy chủ không nhớ các yêu cầu trước đó
9. Sự phát triển của HTTP
HTTP/0.9 - 1990
Request method + URI + crlf
GET /pets/index.html
Chỉ cần gửi lại nội dung tập tin
Không có thông tin tiêu đề
Ảnh hưởng của Gopher
Các loại phương tiện
Ký tự đơn biểu thị một trong mười loại
HTTP/1.0 - 1995
Thông tin meta giữa máy khách và máy chủ
Media types
MIME type/subtype
Status codes
Thông tin này ảnh hưởng đến sự phát triển của công cụ tìm kiếm
web
Caching (bộ nhớ đệm)
Authorization (ủy quyền)
Problems
Scalability (khả năng mở rộng)
Số lượng lớn khách hàng truy cập máy chủ trong thời gian ngắn
Flash crowd
Bandwidth (băng thông)
HTTP/1.1
Phạm vi byte
Yêu cầu một tập hợp con tài liệu
Định dạng tài liệu di động của Adobe
Truyền phát đa phương tiện
Loại bỏ giao tiếp máy khách/máy chủ không cần thiết
Quá trình truyền bị gián đoạn được khởi động lại có thể hiệu quả hơn
Đàm phán nội dung với yếu tố chất lượng
Yếu tố chất lượng
Real numbers between 0 and 1
Default is 1
Accept-Language: fr, en-gb; q=0.8, en; q=0.7
Mã hóa theo khối
Truyền tải đa phương tiện trực tuyến
Một khung hình khác nhau về kích thước và bố cục so với khung
hình tiếp theo
Truyền phát video
Toàn bộ hình ảnh được truyền ở đoạn đầu tiên và những khác
biệt so với hình ảnh trước đó sẽ được truyền ở đoạn tiếp theo
Chuyển đổi giao thức
Khách hàng có thể chỉ định một giao thức khác phù hợp hơn với
dữ liệu được truyền
Kiểm tra tính toàn vẹn của tin nhắn
Digest authentication (xác thực thông báo)
In HTTP/1.0, người dùng đã gửi tên người dùng và mật khẩu qua mạng
In HTTP/1.1, máy khách và máy chủ không bao giờ gửi tên người dùng
hoặc mật khẩu thực tế qua mạng
In HTTP/1.0, nếu một trang bao gồm hình ảnh nội tuyến, nhiều khung,
hoạt ảnh và các tham chiếu bên ngoài khác thì để duyệt trang này sẽ yêu
cầu nhiều kết nối lại
In HTTP/1.1 có nhiều giao dịch yêu cầu/phản hồi trên mỗi kết nối
Khách hàng có thể chuyển các yêu cầu đến máy chủ bằng cách gửi
nhiều yêu cầu khi bắt đầu phiên
Cache management with entity tags (quản lý bộ đệm bằng thẻ thực thể)
Khi nội dung của URI thay đổi, thẻ thực thể của nó cũng thay đổi
Hữu ích cho việc duy trì bộ đệm, vì thông tin URI được cập
nhật sẽ có thẻ thực thể khác
Có thể biết liệu cùng một tài nguyên có đang được lưu vào bộ nhớ
đệm từ nhiều URI hay không vì nó có cùng một thẻ thực thể
Thẻ thực thể mạnh
Thay đổi khi bất kỳ phần nào của tài nguyên thay đổi
Một hoặc nhiều byte thay đổi
Thẻ thực thể yếu
Chỉ thay đổi khi ngữ nghĩa của phần thân thực thể thay đổi
Software multihoming
Số lượng địa chỉ IP có sẵn là một mối quan tâm
Trong HTTP/1.0, máy chủ có thể có nhiều mục DNS và địa chỉ IP, mỗi
mục tương ứng với cây tài liệu khác nhau
Trong HTTP/1.1, máy chủ có thể có nhiều mục DNS và chỉ một địa
chỉ IP duy nhất
10. HTTP trong tương lai
HTTP-Next Generation
Nhiều kênh
Một kết nối TCP mang nhiều kênh để liên lạc song song
Các giao thức khác nhau trên mỗi kênh
Theo cách truyền thống
Nhiều kết nối TCP giữa cùng một máy khách và máy chủ
Các trang chứa hình ảnh, video, âm thanh và html
Khả năng mở rộng
Việc thêm các tiêu đề MIME mới là cách truyền thống để mở rộng http
Hạn chế
Không có dấu hiệu cho thấy bên nhận có hiểu các phần mở rộng này
hay không
Không có dấu hiệu cho biết liệu tiện ích mở rộng có dành cho tất cả
các bên dọc theo đường dẫn tin nhắn hay chỉ dành cho một số trung
gian nhất định
Không có chỉ dẫn về thứ tự các phần mở rộng nên được giải thích
PEP
Giao thức mở rộng giao thức
Hiệu suất
Phân tích cú pháp tiêu đề MIME gây lãng phí tài nguyên
Tiêu đề cố định
Trạng thái liên tục giữa nhiều yêu cầu http
Không phải tất cả các tiêu đề đều phải được đưa vào mọi tin nhắn
http
Distributed authoring
Thông báo sự kiện
Bộ nhớ đệm và sao chép
Các trang web phổ biến thực sự phổ biến
Flash crowds happen
Các điểm nóng trên mạng rất năng động
Lượng dữ liệu động ngày càng tăng
QoS
Chất lượng dịch vụ
Không phải mọi thứ đều phải được xử lý bằng cùng một QoS
QoS bắt buộc phải được thực hiện ở giao diện người dùng
Giao thức thời gian thực và web
Giao thức truyền phát
Âm thanh/video theo yêu cầu

You might also like