Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng. Được sử dụng để định dạng và trao đổi thông tin người dùng và hệ thống. Một số giao thức thông dụng trong tầng này là: HTTP, FTP, SMTP,…Trong phạm vi đồ án, chúng ta sử dụng giao thức HTTP mà cụ thể là xây dựng một Webserver nhúng vào hệ thống.
HTTP là giao thức truyền tải siêu văn bản (HyperText Transfer Protocol). HTTP xác định cách các thông điệp được định dạng và truyền tải ra sao và hoạt động của Webserver và các trình duyệt Web.Trong mô hình của HTTP, Webserver đồng thời cũng là TCPServer, mở sẵn port mặc định dành cho dịch vụ HTTP là TCP80 (ở chế độ listen),
28
sẵn sàng đợi yêu cầu kết nối từ các client. Các client sẽ khởi tạo kết nối TCP thông qua port này, sau khi Webserver chấp nhận kết nối, client sẽ gửi một bản tin HTTP (HTTP message) gọi là HTTP request tới server trên kết nối TCP vừa thiết lập. Server sẽ trả lời lại bằng một bản tin HTTP khác là HTTP response. Bản tin này sẽ chứa nội dung trang Web yêu cầu (được viết bằng ngôn ngữ HTML). Như vậy giao thức HTTP sẽ dựa cơ bản trên các bản tin HTTP, gồm 2 loại là HTTP request và HTTP response.
Giả sử ta truy nhập vào địa chỉ IP của webserver là 192.168.1.177 qua trình duyệt:
- Lúc đó, máy tính của chúng ta sẽ gửi đi một bản tin request của giao thức HTTP là HTTP Get thông qua giao thức TCP (với cổng TCP được qui định cho giao thức HTTP là 80) đến địa chỉ webserver trên.
- Webserver, ở đây chính là vi điều khiển của chúng ta nhận được bản tin này (khi đã đi qua hết các lớp giao thức ethernet, IP, TCP rồi mới đến HTTP). Tại đây vi điều khiển sẽ đọc và phân tích bản tin HTTP request này để biết máy tính đang yêu cầu tải nội dung trang web nào.
- Sau đó vi điều khiển sẽ lấy nội dung trang web này (được soạn thảo theo ngôn ngữ HTML) chứa trên trên ROM, nó cũng có thể thêm vào trang web đó một số thông tin (ví dụ đọc giá trị từ các sensor cảm biến nhiệt độ và đưa vào trong trang web), và gửi toàn bộ nội dung trang web thông qua giao thức TCP trở lại cho máy tính. Nếu nội dung trang web lớn nó có thể được gửi đi trên rất nhiều gói tin, vì mỗi gói tin chỉ chứa tối đa 1460 byte dữ liệu.
- Máy tính nhận nội dung trang web và trình duyệt sẽ hiển thị lên cho chúng ta thấy. Để điều khiển thiết bị kết tới hệ thống từ xa qua web, trên trang web ta có thể thiết kế một nút nhấn chẳng hạn. Khi ta nhấn nút này trên trình duyệt, máy tính sẽ gửi đi một bản tin HTTP nữa là HTTP Get. Vi điều khiển sẽ nhận bản tin HTTP post này, phân tích dữ liệu chứa trong đó để có đáp ứng tương ứng (bật tắt bóng đèn) sau đó nó sẽ gửi trả lại lần nữa nội dung trang web đã cập nhật những thay đổi vừa rồi.Trình duyệt sẽ cập nhật nội dung này lên và ta sẽ thấy được tác động của thao tác điều khiển.