I've noticed that some sites (including the old http://careers.stackoverflow.com 1.0) have query strings that look like this:
http://somewebapp.example/?123
as compared to:
http://somewebapp.example/123
or http://somewebapp.example/id/123
What are the reasons that developers choose to implement their web apps' URLs using the first example instead of the second and third examples?
And as a bonus, how would one implement the first example in PHP, given that 123
is the primary key of some row in a database table? (I just need to know how to retrieve 123
from the URL; I already know how to query the database for a primary key of 123
.)
EDIT [5/28]: Oops, forgot to let everyone know that I know what the latter two URLs are, how they work and how to implement them. Thanks for the reminders though, I think I had some unrelated misconceptions that were serendipitously clarified anyway!
The first is easier to implement; everything after the ? is part of the query string. The web server loads the page specified before the ?, and handles the query string separately (in PHP it's accessible through $_GET
)
In the second example the developer needs to set up the web server to redirect all requests to a special page (since there is no /123
page on the server), which will then parse the URL to figure out what was requested
As to your last question, the 123
will show up in $_GET
as a key, so key($_GET)
would work assuming it's the only thing you're passing in the query string
You can access it from php using
$_SERVER['QUERY_STRING']
The first URL is using query parameters to send the data. The later is a form of REST
URL which actually is pointing to a resource with ID 123
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With