title: HTTP status code for GET request with non-existing query parameter value
body: <p>Let's clarify three common scenarios when no item matches the request with a simple example:</p>
  
  <ol>
  <li><code>GET /posts/{postId}</code> and <code>postId</code> does not exist (status code 404, no question)</li>
  <li><code>GET /posts?userId={userId}</code> and the user with <code>userId</code> does not have any posts</li>
  <li><code>GET /posts?userId={userId}</code> and the user with <code>userId</code> does not exist itslef</li>
  </ol>
  
  <p>I know there's no strict REST guideline for the appropriate status codes for cases 2 and 3, but it seems to be a common practice to return <code>200</code> for case 2 as it's considered a "search" request on the <code>posts</code> resource, so it is said that <code>404</code> might not be the best choice.</p>
  
  <p>Now I wonder if there's a common practice to handle case 3. Based on a similar reasoning with case 2, <code>200</code> seems to be more relevant (and of course in the response body more info could be provided), although returning <code>404</code> to highlight the fact that <code>userId</code> itself does not exist is also tempting.</p>
  
  <p>Any thoughts?</p>