To do some low level check on websites, I'd usually use telnet to compose a http requests against the server. The main intention is to talk directly to the server port to make sure the problem we have not caused by some higher level application. For example, to connect to server and issue a GET request:- telnet k4ml.github.io 80 Trying 199.27.75.133... Connected to github.map.fastly.net. Escape character is '^]'. GET / Connection closed by foreign host. There's always a problem with telnet. In the above example, I can only issue a GET request without having a chance to add other HTTP headers such as HOST before the server close the connection. Some websites also time out very quickly when they are not receiving any data after establishing connection. And since the above command is in interactive session, it's not repeatable or scripted. Using nc seem to be much better. Specify the virtual host:- echo -en "HEAD / HTTP/1.1\r\nHOST: k4ml.github.io\r\n\r\n...