Trình Yêu Cầu HTTP

Để thực hiện ví dụ này, trước tiên sẽ giải thích tất cả các cơ sở về HTTP. Điều này rất quan trọng để hiểu cách hoạt động của giao diện.

Cơ Sở

Các điểm sau đây cần được lưu ý:

  • Khi thực hiện một yêu cầu qua HTTP, kết nối từ client sẽ được thiết lập cho đến khi kết nối bị server ngắt.
  • Yêu cầu được thực hiện thông qua TCP trên cổng 80 (HTTP không mã hóa) và cổng 443 (HTTPS mã hóa).
  • Nếu sử dụng cổng 80 với http:// hoặc cổng 443 với https://, cổng sẽ bị ẩn.
  • Từ HTTP/1.1 trở đi, lớp kết nối được thiết kế để giữ kết nối mở một thời gian để tránh quá trình handshake của TCP. Điều này không thể nhìn thấy trong Antcas Hub. Tuy nhiên, sau khi hết thời gian chờ, kết nối từ client, tức là máy chủ Antcas sẽ bị đóng. Thời gian chờ nên được đặt cao.
  • Mỗi yêu cầu đều hoàn toàn tương thích ngược. Không quan trọng server hỗ trợ HTTP/1.0, HTTP/1.1 hoặc HTTP/2.
  • Header là không phân biệt chữ hoa thường. Điều này có nghĩa là việc viết hoa hay thường không quan trọng. Tuy nhiên, một số nhà sản xuất không chú ý đến việc thực hiện điều này.
  • Mã hóa ký tự trong Antcas Control luôn là UTF-8. Nếu sử dụng các mã khác, chúng cần được chuyển đổi nếu cần thiết.
  • Độ dài tối đa của một URL bao gồm Query là 2'083 ký tự.

Cấu trúc của một URL như sau:

http://server.tld/getdata?project=you%26i+project&id=25#anker
Thành Phần Nghĩa
http:// Định nghĩa giao thức. Antcas Control hiện hỗ trợ http và https.
server.tld Định nghĩa tên miền (DNS) hoặc địa chỉ IP của máy chủ đích.
getdata Là URI của server. Nó tương ứng với trang đích, tương tự như một đường dẫn.
?[...] Ký tự ? phân tách URL từ yêu cầu GET gọi là Query, sau đó là tất cả dữ liệu form cũng được gọi là Query. Query luôn được mã hóa để thay thế các ký tự không được hỗ trợ.
#[...] Ký hiệu #- định nghĩa một điểm neo trên trang. Với điều này, có thể nhảy đến bất kỳ vị trí nào (cuộn). Dữ liệu này không được truyền đến server. Ngoài ra, khu vực này bao gồm # không được sao chép vào yêu cầu, vì nếu không sẽ gọi trang đích khác trên server.

Cấu hình các máy chủ đích được thực hiện trong HTTP Gateway tương ứng.

Cấu Trúc Một Yêu Cầu

Cấu trúc của một yêu cầu bao gồm một header và một body. Header luôn hiển thị phương thức sử dụng, URI và giao thức trong dòng đầu tiên.

GET /getdata?project=you%26i+project&id=25 HTTP/1.1
Host: server.tld

Sau đó là phản hồi của server. Nó bao gồm mã trạng thái của yêu cầu. Body theo sau header với một dòng trống.

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html

<html>Hallo Welt</html>

Mã Trạng Thái

Các mã trạng thái được chia thành các nhóm. Các nhóm được định nghĩa bởi chữ số đầu tiên. Ngoài ra, sau số là ý nghĩa bằng văn bản. Đây là một số ví dụ:

Trạng Thái Mô Tả
200 OK Yêu cầu thành công.
301 Found Chuyển hướng đến trang thực tế. Vì Antcas Control theo dõi các liên kết, phản hồi này thường bị ẩn.
404 Not Found Trang được chỉ định không tìm thấy.
500 Internal Server Error Lỗi server đã xảy ra.

Phương Thức

Các phương thức GET và POST được sử dụng thường xuyên nhất.

Phương Thức Mô Tả
GET Yêu cầu GET là yêu cầu tiêu chuẩn. Nó không hỗ trợ nội dung.
POST Yêu cầu POST gửi nội dung đến server. Nội dung có thể rỗng. Ưu điểm của nó là nội dung không có giới hạn độ dài. Với một yêu cầu GET, chỉ có thể truyền một số lượng dữ liệu nhất định.
PUT PUT được các giao diện sử dụng để trao đổi thông tin.
DELETE Kết hợp với PUT, nó được sử dụng để xóa dữ liệu.
(khác) Các phương thức HTTP khác cũng được hỗ trợ, nhưng yêu cầu cấu hình tương ứng.

Xác Thực

Phần lớn xác thực diễn ra trong header. Tuy nhiên, cũng có các yêu cầu được định nghĩa trong Query hoặc Content.

Có thể phải tạo một phiên trước khi thực hiện yêu cầu thực tế. Phiên sẽ được đặt trong header Set-Cookie. Cookie này sau đó cần được truyền lại. Nội dung của cookie là Case-Sensitive, điều này có nghĩa là nội dung phải được truyền một cách chính xác. Đây là một ví dụ đơn giản:

POST /login HTTP/1.1
Host: server.tld

username=myname&password=1234

Phản hồi của server:

HTTP/1.1 200 OK
Server: Apache2
Content-Type: text/html
Set-Cookie: SESSION=vmvbquk7dq6dbbcq

Bây giờ cookie có thể được sử dụng lại trong yêu cầu tiếp theo:

GET /opendoor HTTP/1.1
Host: server.tld
Cookie: SESSION=vmvbquk7dq6dbbcq

Mẹo

Trong console phát triển của trình duyệt, có thể đánh giá và kiểm tra yêu cầu dưới mục Mạng. Ngoài ra, đôi khi nó cũng là một ý kiến ​​thông minh để sao chép hoặc xem header.

Cấu Hình

Trong Antcas Control, một giao diện HTTP được tạo với một gateway. Gateway được cấu hình như một client HTTP. Địa chỉ đích và cổng (bắt buộc) được nhập tương ứng. Sau đó, yêu cầu được cấu hình trong cấu trúc. Để làm điều này, URL được nhập dưới dạng biến trong Communication.

Yêu Cầu Đơn Giản

Để tạo một yêu cầu đơn giản, chọn bất kỳ kiểu dữ liệu nào. Nó là chuỗi ký tự (string) ưu tiên. Khi có thay đổi giá trị ở đầu ra, một yêu cầu sẽ được thực hiện ngay lập tức. Giá trị sau đó sẽ được sử dụng trực tiếp như Query.

Yêu Cầu Phức Tạp

Một yêu cầu phức tạp hơn được tạo bằng khối chức năng HTTP_REQUEST. Để làm điều này, kiểu dữ liệu của Communication phải được đặt thành raw. Phản hồi sau đó có thể được đánh giá bằng khối chức năng HTTP_RESPONSE. ID của yêu cầu phải được liên kết vô cùng để phân loại phản hồi của yêu cầu một cách chính xác.

Ví Dụ

Trong ví dụ này, dữ liệu được gửi đến server bằng phương thức GET và phản hồi được đánh giá. URL đầy đủ như sau:

http://server.tld/getdata?project=you%26i+project&id=25

Để có thể lấy hoặc gửi dữ liệu từ một server, ví dụ sau được sử dụng:

Ghi Chú: Ví dụ không hiển thị cách yêu cầu phải được kích hoạt. Nó được kích hoạt bằng một cạnh dương ở đầu vào SET. Để ngăn chặn một yêu cầu không mong muốn, đầu vào DIS nên được đặt thành TRUE.

Cấu hình giao diện được cấu hình như sau: