HTTP parser plugin for Data Loggers
Latest version: 5.0.1 build 1126. November 28, 2025.
This HTTP parser module integrates with Advanced TCP/IP Data Logger or Data Logger Suite to provide basic HTTP server features and to convert incoming HTTP requests into structured parsed data for export. It inspects request lines, headers, and bodies, and extracts values using multiple parsing methods, converts types, applies filters, and optionally returns HTTP responses. Use this module when you need to collect telemetry, device status, or form data directly from HTTP clients without deploying a full web server or custom scripts.
The parser validates incoming HTTP messages and extracts fields from the header and from a request body query string. It supports GET and POST methods and detects protocol version automatically. For each extracted variable, you can define a data type (string, integer, float, boolean, datetime, and others), a default value, and additional parsing rules. Note that multipart/mixed POST bodies are not supported.
The following example demonstrates a typical HTTP request the module receives and how values can be mapped.
Example incoming HTTP request (typical):
GET /js/some.js?sensor=Temp&sensor_id=1&value=23.6 HTTP/1.1 Host: 127.0.0.1:10000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17 Accept: */* Accept-Language: q=0.8,en-us;q=0.5,en;q=0.3 Accept-Charset: windows-1250,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive
From this request you can extract variables such as sensor_id and value. If you like, you can also extract other header items as strings (e.g., Host, RequestPath, User-Agent).
Parsing methods
- Http header field - for example, specify Item name "Referer" and type string. The parser returns the full referrer URL or a default value if missing.
- Query string field - for POST form data such as "sensor=Temp&value=23.6", define item "value" as float to export numeric data.
- Fixed position - extract the method or request path from the request line. Example: position 1..3 returns "GET".
- Delimited - use delimiter ": " to split header entries. Example extracts "User-Agent" value.
- Regular expression - capture subexpressions for complex patterns. Example regex for ISO date in body: (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) to extract to DATE_TIME_STAMP.
- Default or None - create fixed variables that always contain a constant or null to use in data export plugins.
Response options
The module can remain silent or return structured HTTP replies. Response types include Disabled, 403, 404, Text, From file, and From root folder. Use "From root folder" to serve static content stored in a folder. When serving files, set the content type to Autodetect to match the file extension. If the requested file is missing, the module will return 404.
Example responses:
- Return a simple text confirmation for accepted telemetry: HTTP/1.1 200 OK with body "OK".
- Return 403 for unauthorized clients based on an IP or header filter.
- Return file content: the parser returns the content of any user-specified file.
Integration examples with Advanced TCP/IP Data Logger
Example 1: Device posts telemetry via HTTP POST as application/x-www-form-urlencoded (raw data):
POST /upload HTTP/1.1 Host: 192.168.1.100:8080 Content-Type: application/x-www-form-urlencoded Content-Length: 29 sensor=Temp&value=23.6&ts=2025-01-02 08:00:00
Parsing rules:
- Query string field "sensor" → type string → value "Temp"
- Query string field "value" → type float → value 23.6
- Query string field "ts" → type datetime → convert to DATE_TIME_STAMP = "2025-01-02 08:00:00"
Export example using the CSV export module:
DATE_TIME_STAMP,sensor,value 2025-01-02 08:00:00,Temp,23.6
Example 2: Simple GET request used by devices to report status:
Incoming (raw): GET /status?uptime=3600&load=0.12 HTTP/1.1 Host: 10.0.0.5:10000 User-Agent: Device/1.2
Parsing rules:
RequestPath → Fixed value = /status uptime → Query string field → integer = 3600 load → Query string field → float = 0.12
Key features
- Parse HTTP request line, headers, and body fields.
- Multiple parsing methods: fixed position, delimited, regex, query field.
- Type conversion into common data types (e.g., date, time, string, float).
- Request size and timeout controls to protect the server.
- Configurable HTTP responses: Disabled, 403, 404, text, file, or root folder.
- Option to export complete header or selected parsed variables.
Brief summary
The HTTP Server Parser provides a lightweight way to accept, parse, and export HTTP data inside Advanced TCP/IP Data Logger or Data Logger Suite, with configurable parsing types and response modes.
Read more about other plugins:
All plugins | ASCII Data Query and Parser | MODBUS RTU, MODBUS TCP, MODBUS ASCII | Scale Data Parser | DNP3 protocol | GE Fanuc Automation PLC (via CCM, SNP, SNP-X protocols) | Siemens SIMATIK PLC (S7-200, S7-300, S7-400, S5) | EtherNet/IP | M-Bus | Bacnet/IP | IEC 62056-21 | DLMS/COSEM | DL-T645-2007 | CJ/T 188-2004 | Kamstrup [KMP protocol] | Data parser module for ADAM, ICP-CON and NuDAM devices | RFC3164 (syslog protocol) data parser | HTTP data parser | File requests | XML Data Parser | CSV or delimited data parser | RFID Protocols Data Parser (LLRP, ISO 18000-6B, ISO 18000-6C) | JSON parser