What is the difference between HTTP status code 200 (cache) vs status code 304?

The items with code “200 (cache)” were fulfilled directly from your browser cache, meaning that the original requests for the items were returned with headers indicating that the browser could cache them (e.g. future-dated Expires or Cache-Control: max-age headers), and that at the time you triggered the new request, those cached objects were still stored … Read more

What’s the difference between HTTP 301 and 308 status codes?

An overview of 301, 302 and 307 The RFC 7231, the current reference for semantics and content of the HTTP/1.1 protocol, defines the 301 (Moved Permanently) and 302 (Found) status code, that allows the request method to be changed from POST to GET. This specification also defines the 307 (Temporary Redirect) status code that doesn’t … Read more

Returning http status code from Web Api controller

I did not know the answer so asked the ASP.NET team here. So the trick is to change the signature to HttpResponseMessage and use Request.CreateResponse. [ResponseType(typeof(User))] public HttpResponseMessage GetUser(HttpRequestMessage request, int userId, DateTime lastModifiedAtClient) { var user = new DataEntities().Users.First(p => p.Id == userId); if (user.LastModified <= lastModifiedAtClient) { return new HttpResponseMessage(HttpStatusCode.NotModified); } return request.CreateResponse(HttpStatusCode.OK, … Read more

JAX-RS — How to return JSON and HTTP status code together?

Here’s an example: @GET @Path(“retrieve/{uuid}”) public Response retrieveSomething(@PathParam(“uuid”) String uuid) { if(uuid == null || uuid.trim().length() == 0) { return Response.serverError().entity(“UUID cannot be blank”).build(); } Entity entity = service.getById(uuid); if(entity == null) { return Response.status(Response.Status.NOT_FOUND).entity(“Entity not found for UUID: ” + uuid).build(); } String json = //convert entity to json return Response.ok(json, MediaType.APPLICATION_JSON).build(); } Take … Read more

What’s an appropriate HTTP status code to return by a REST API service for a validation failure?

If “validation failure” means that there is some client error in the request, then use HTTP 400 (Bad Request). For instance if the URI is supposed to have an ISO-8601 date and you find that it’s in the wrong format or refers to February 31st, then you would return an HTTP 400. Ditto if you … Read more

What HTTP status response code should I use if the request is missing a required parameter?

Status 422 seems most appropiate based on the spec. The 422 (Unprocessable Entity) status code means the server understands the content type of the request entity (hence a 415(Unsupported Media Type) status code is inappropriate), and the syntax of the request entity is correct (thus a 400 (Bad Request) status code is inappropriate) but was … Read more