Bird
Raised Fist0
Nginxdevops~5 mins

JSON error responses in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a JSON error response in the context of nginx?
A JSON error response is a structured message sent by nginx to the client when an error occurs, formatted in JSON to make it easy for applications to understand and handle the error.
Click to reveal answer
intermediate
How do you configure nginx to return a JSON error response?
You configure nginx to return JSON error responses by using the 'error_page' directive to specify a custom error page and then serving a JSON file or inline JSON content with the correct 'Content-Type: application/json' header.
Click to reveal answer
beginner
What HTTP header must be set to indicate a JSON error response?
The HTTP header 'Content-Type: application/json' must be set to indicate that the response body contains JSON data.
Click to reveal answer
beginner
Example of a simple JSON error response body?
{"error": {"code": 404, "message": "Not Found"}}
Click to reveal answer
intermediate
Why use JSON error responses instead of plain text in APIs?
JSON error responses allow clients to easily parse and handle errors programmatically, improving automation and user experience compared to plain text messages.
Click to reveal answer
Which nginx directive is used to specify a custom error page?
Alocation
Bproxy_pass
Cerror_page
Dreturn
What Content-Type header should be set for JSON error responses?
Aapplication/json
Btext/html
Ctext/plain
Dapplication/xml
What is the main benefit of JSON error responses in APIs?
AThey are easier for humans to read
BThey improve network speed
CThey reduce server load
DThey allow clients to parse errors programmatically
Which HTTP status code is commonly used for 'Not Found' errors?
A200
B404
C301
D500
In nginx, how can you serve a JSON error response inline without a separate file?
AUsing 'return' with JSON string and setting Content-Type
BUsing 'proxy_pass' to a JSON server
CUsing 'rewrite' directive
DUsing 'listen' directive
Explain how to configure nginx to return a JSON error response for a 404 error.
Think about how nginx handles error pages and headers.
You got /3 concepts.
    Why is it important to set the Content-Type header correctly when returning JSON error responses?
    Consider how clients read and use the response data.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main benefit of sending JSON error responses in nginx?
      easy
      A. They automatically fix server errors without manual intervention.
      B. They make error information easy for applications to read and process.
      C. They reduce the size of error messages to save bandwidth.
      D. They prevent users from seeing any error messages.

      Solution

      1. Step 1: Understand JSON error response purpose

        JSON error responses format error details in a way apps can easily parse and handle.
      2. Step 2: Compare options

        Only They make error information easy for applications to read and process. correctly states the benefit of JSON error responses; others are incorrect or unrelated.
      3. Final Answer:

        They make error information easy for applications to read and process. -> Option B
      4. Quick Check:

        JSON error responses = easy app reading [OK]
      Hint: JSON errors help apps read errors clearly [OK]
      Common Mistakes:
      • Thinking JSON errors fix server issues automatically
      • Believing JSON errors hide all error messages
      • Assuming JSON errors reduce bandwidth significantly
      2. Which nginx directive is used to specify a custom error page that returns JSON?
      easy
      A. error_page
      B. listen
      C. proxy_pass
      D. server_name

      Solution

      1. Step 1: Identify directive for custom error pages

        The error_page directive tells nginx which page to serve on specific errors.
      2. Step 2: Eliminate unrelated directives

        proxy_pass forwards requests, listen sets ports, server_name sets domain names; none define error pages.
      3. Final Answer:

        error_page -> Option A
      4. Quick Check:

        Custom error page directive = error_page [OK]
      Hint: Use error_page to set custom error responses [OK]
      Common Mistakes:
      • Confusing proxy_pass with error_page
      • Using listen or server_name for error handling
      • Forgetting to set content type for JSON
      3. Given this nginx config snippet, what is the JSON response body for a 404 error?
      error_page 404 /404.json;
      location = /404.json {
        internal;
        default_type application/json;
        return 404 '{"error":"Not Found"}';
      }
      medium
      A. 404 Not Found
      B. Not Found
      C. {"error":"Not Found"}
      D. Error 404

      Solution

      1. Step 1: Analyze the error_page and location block

        The 404 error triggers /404.json, which is internal and returns JSON with content type application/json.
      2. Step 2: Check the return statement

        The return sends status 404 with JSON string '{"error":"Not Found"}' as the body.
      3. Final Answer:

        {"error":"Not Found"} -> Option C
      4. Quick Check:

        Return JSON string = {"error":"Not Found"} [OK]
      Hint: Look at return content for JSON body [OK]
      Common Mistakes:
      • Assuming default HTML error page is returned
      • Ignoring internal directive effect
      • Confusing status code text with response body
      4. You configured nginx to return JSON errors but clients receive HTML error pages instead. What is the likely mistake?
      medium
      A. The server_name directive is not set.
      B. The error_page directive is missing or incorrect.
      C. The return directive uses invalid JSON syntax.
      D. The internal directive is missing in the error location block.

      Solution

      1. Step 1: Understand internal directive role

        The internal directive prevents direct client access to error pages, ensuring nginx uses them only for error responses.
      2. Step 2: Identify why HTML is returned

        If internal is missing, clients can access the error page URL directly, causing nginx to serve default HTML instead of JSON error.
      3. Final Answer:

        The internal directive is missing in the error location block. -> Option D
      4. Quick Check:

        Missing internal = HTML errors shown [OK]
      Hint: Always mark error locations internal for JSON errors [OK]
      Common Mistakes:
      • Forgetting internal causes direct access to error pages
      • Blaming server_name for error response format
      • Assuming JSON syntax error causes HTML output
      5. How would you configure nginx to return a JSON error response with status 500 and body {"error":"Server Error"} using an internal location?
      hard
      A. error_page 500 /500.json; location = /500.json { internal; default_type application/json; return 500 '{"error":"Server Error"}'; }
      B. error_page 500 /500.html; location = /500.html { internal; default_type text/html; return 500 '

      Server Error

      '; }
      C. location /500.json { return 500 '{"error":"Server Error"}'; }
      D. error_page 500 /500.json; location /500.json { default_type application/json; return 500 '{"error":"Server Error"}'; }

      Solution

      1. Step 1: Use error_page to map 500 to JSON location

        The directive error_page 500 /500.json; tells nginx to use /500.json for 500 errors.
      2. Step 2: Define internal location with JSON content type and return JSON body

        The location must be internal to prevent direct access, set default_type application/json;, and return the JSON string with status 500.
      3. Step 3: Verify options

        error_page 500 /500.json; location = /500.json { internal; default_type application/json; return 500 '{"error":"Server Error"}'; } matches all requirements. error_page 500 /500.html; location = /500.html { internal; default_type text/html; return 500 '

        Server Error

        '; }
        uses HTML. The others lack the internal directive or miss the error_page directive.
      4. Final Answer:

        error_page 500 /500.json; location = /500.json { internal; default_type application/json; return 500 '{"error":"Server Error"}'; } -> Option A
      5. Quick Check:

        Use error_page + internal + JSON return [OK]
      Hint: Map error_page, mark internal, set JSON content, return JSON [OK]
      Common Mistakes:
      • Omitting internal directive
      • Using wrong content type
      • Not escaping JSON properly
      • Not mapping error_page to location
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard