Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions simple_seismic_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,10 @@ def do_GET(self):

def send_json(self, data):
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self.send_header('Content-Type', 'application/json; charset=utf-8')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

According to RFC 8259, the application/json media type does not define a charset parameter. JSON is defined to be UTF-8 by default, so adding this parameter is redundant and technically non-standard.

Additionally, for a performance-oriented API, consider calculating the response body length and providing a Content-Length header. This enables HTTP persistent connections (Keep-Alive), which can significantly reduce latency for subsequent requests by avoiding the overhead of repeated TCP/TLS handshakes.

Suggested change
self.send_header('Content-Type', 'application/json; charset=utf-8')
self.send_header('Content-Type', 'application/json')

self.send_header('Access-Control-Allow-Origin', '*')
self.end_headers()
self.wfile.write(json.dumps(data, separators=(',', ':')).encode())
self.wfile.write(json.dumps(data, separators=(',', ':')).encode('utf-8'))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To further optimize for both serialization speed and payload size, consider adding ensure_ascii=False to the json.dumps call. Since the output is explicitly encoded as UTF-8, this avoids the unnecessary CPU overhead of escaping non-ASCII characters into Unicode escape sequences (e.g., \uXXXX), which is the default behavior. This is particularly beneficial if the seismic data or logs contain any non-ASCII symbols.

Suggested change
self.wfile.write(json.dumps(data, separators=(',', ':')).encode('utf-8'))
self.wfile.write(json.dumps(data, separators=(',', ':'), ensure_ascii=False).encode('utf-8'))


def log_message(self, format, *args):
"""Override to customize logging"""
Expand Down
Loading