views:

649

answers:

12

Before the advent of all of the MVC web development frameworks available (Django, CakePHP, Rails, etc.), it wasn't too difficult to figure out what sort of tools were used to build a given website. You could usually look at the file extension on a given page and know right there. But now, a great many newer sites (such as this one) use one of the aforementioned frameworks, so the URLs are nice and pretty and generally don't contain the telltale file extension.

So, SOers, if you wanted to determine which language+framework was used in building a website, how would you do it?

(I don't have any nefarious intentions or anything, I just frequently find myself saying "huh, I wonder if they used [some framework] to build this...")

Thanks!

+3  A: 

A couple of times, I've just asked the webmaster in an email. It works best in non-corporate sites.

Grant
A: 

Even with the file extension we can just guess. A .php url can mask an ASP.NET page. But some technologies leaves other clues, and you can play with the url/query string/post data to see if you can raise some more revealing error page.

Jader Dias
A: 

I usually try typing:

domain.com/index.php
domain.com/index.jsp
domain.com/index.aspx
domain.com/index.cgi

Until I get one.. but don't do this.. it does not work =/

José Leal
"This is what I do but it doesn't work." Very helpful.
Graeme Perrow
Besides, due to URL Rewriting, you'll usually end up really asking for domain.com/index.ext?pageid=index.php
Grant
+1  A: 

Sometimes I have asked my friends working there.

If you see an Exception in the site (if the error handling is not good), then some of the packages are displayed, which gives us idea of the framework. This is a rare case.

Some site tell about the technology/Frameworks used, to show they are ahead of technology, but this is rare.

Some times reverse engineering helps.

Techmaddy
Sometimes I would have applied to that company for that project and they ask me these frameworks in their interviews / the expected technologies.
Techmaddy
+5  A: 

There is no method to determine the nature of a website, but over time I've developed some kind of sense to guess which technologies are being used.

PHP websites will usually display the .php extension at the end of the URL.

Java websites will usually display a .jsp extension at the end of the URL. It's also a common practice to use a .do extension for Struts actions, so a .do at the end of the URL usually means Java.

ASP.NET sites will display a .aspx extension at the end of the URL.

Rails sites usually have pretty sort URLs displayed in a REST style. The web page usually loads a bit slow. The looks of the web pages tend to be minimalistic. Rails developers are clean and clever people, and that can be seen in both the code and the layout of the webpage.

Another technique is to force a server error and take a look at the error page. Apache gives information about the enabled mods, a clue about the language or framework used. And of course, taking a look at the webpage code can be useful too: JavaScript libraries, generated html, etc.

flicher
+1  A: 

The http response header often has clues by default, but these can be removed if the programmer so wishes.

Neil N
or changed to look like something else...
amdfan
+4  A: 

Netcraft is a good way to start when you have no clue what's behind a website, since it gives a nice report on what OS and Web Server is being used.

moose-in-the-jungle
Should note that it doesn't always work, but it works for the majority of websites out there.
musicfreak
+2  A: 

If you take a look at the source of a page, specifically at the CSS imports, you can often get an idea.

For example, Drupal sites will include CSS files like node.css and so forth. I'm pretty sure Joomla sites have similar giveaways.

half_brick
A: 

I agree with some of the earlier posters that sometimes you can "just tell" by the way the site is structured. But of course sometimes you can't tell and sometimes your intuition lead you astray.

One idea that may be more trouble than it's worth - try searching for @company.com e-mail addresses in programming forums. If one or more employees are frequently posting questions or answers, that may be a clue that a particular framework is in active use or under consideration. Of course, there are a million reasons why this is not a reliable general method, but it just might help in a particular situation.

allclaws
+1  A: 

It's the relatively obvious answer, but just view source on a page, and scan through the comments. I know that I personally have referenced technology in html comments, and others might as well.

Tchalvak
+2  A: 

BuiltWith.com tells you what a website is Built With. Although it is not 100% accurate for server details its a good place to start.

gary
A: 

José Leal's answer of appending index.ext really helps. Try it with SO and you will find that it returs a different error page address for .aspx extension. Combine it with the HTTP server header of Microsoft-IIS/7.5, it proves that SO uses ASP.net

Ameer