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, Section 11, the application/json media type does not define a charset parameter. JSON text is required to be encoded using UTF-8 for interoperability, making the ; charset=utf-8 suffix redundant and technically non-compliant with the MIME type registration. While most clients handle it gracefully, it is best practice to omit it.

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 JSON serialization in line with the performance goals of this PR, consider adding ensure_ascii=False to the json.dumps call. By default, json.dumps escapes all non-ASCII characters, which adds CPU overhead and increases payload size. Since the output is explicitly encoded as UTF-8, escaping is unnecessary.

Additionally, the PR description mentions replacing indent=2 with separators=(',', ':'), but the diff indicates that separators=(',', ':') was already present in the baseline code. You may want to verify if the intended performance improvements are fully captured in this specific change or if the baseline for measurement was different.

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