Personal Technology Information |
Web Standards
HTTP Protocol The web is run on port 80. You are probably wondering what "port 80" is, right (whether you actually are or not is irrelevant)? Well, the answer is easy (not really). See, the Internet and the web are different. The Internet is the infrastructure (ie the physical wires, the server hardware, etc) and the web is the ideas and the software. I say ideas because before the web the Internet was a mess of wires and powerful computers using POP3 and SMTP for communication, FTP for file transfer, and TELNET for remote shell access, among others. Then the web came along, and Internet use spread to the home and all across the world. See, in plain terms, a web server broadcasts HTML to all connected clients on port 80, so port 80 is the "HTTP port." HTTP is the protocol, or set of standards for port 80 and its software. The client software is your browser, (ie probablyInternet Explorer but hopefully Firefox), and the server is something like Apache or IIS(uug). This relates to hacking, as you will see later, but first you need to know more about HTTP. (the spaces before the < & > are put in so this isnt thought of as HTML) < html > < body > < img src="image.png" >< br > < div align="center" >text< /div > < /body > < /html > If Apache is serving that, and Firefox picks it up, It will replace the < img src... etc with the image found at image.png relative to the working directory of the page requested, (ie ./, current dir), and the < div... is turned into text printed in the middle of the page. Sincethe code is processed from top to bottom, the br means that the browser should skip down one line and start the rest from there. The top two and bottom two lines tell the browser what part of the page it is reading. You migh have noticed the < /div >, the < /body >, etc. They "close" the tag. Tag is a term for anything in s, and they must be opened (ie introduced) and closed (ie < /tag >). If you want to learn HTML tagging, just head over to our close friend Google and do a search. Since you haven't gotten to the programming section, and currently I have not even wrote it, I will show you a web server example in the simplest form I can think of that will work on any OS you are currently using. So the obvious choice is JAVA: import java.net.*;import java.io.*;import java.util.*; public class jhttp extends Thread { Socket theConnection; static File docroot; static String indexfile = "index.html"; public jhttp(Socket s) { theConnection = s; } public static void main(String[] args) { int thePort; ServerSocket ss; // get the Document root try { docroot = new File(args[0]); } catch (Exception e) { docroot = new File("."); } // set the port to listen on try { thePort = Integer.parseInt(args[1]); if (thePort < 0 || thePort > 65535) thePort = 80; } catch (Exception e) { thePort = 80; } try { ss = new ServerSocket(thePort); System.out.println("Accepting connections on port " + ss.getLocalPort()); System.out.println("Document Root:" + docroot); while (true) { jhttp j = new jhttp(ss.accept()); j.start(); } } catch (IOException e) { System.err.println("Server aborted prematurely"); } } public void run() { String method; String ct; String version = ""; File theFile; try { PrintStream os = new PrintStream(theConnection.getOutputStream()); DataInputStream is = new DataInputStream(theConnection.getInputStream()); String get = is.readLine(); StringTokenizer st = new StringTokenizer(get); method = st.nextToken(); if (method.equals("GET")) { String file = st.nextToken(); if (file.endsWith("/")) file += indexfile; ct = guessContentTypeFromName(file); if (st.hasMoreTokens()) { version = st.nextToken(); } // loop through the rest of the input li // nes while ((get = is.readLine()) != null) { if (get.trim().equals("")) break; } try { theFile = new File(docroot, file.substring(1,file.length())); FileInputStream fis = new FileInputStream(theFile); byte[] theData = new byte[(int) theFile.length()]; // need to check the number of bytes rea // d here fis.read(theData); fis.close(); if (version.startsWith("HTTP/")) { // send a MIME header os.print("HTTP/1.0 200 OKrn"); Date now = new Date(); os.print("Date: " + now + "rn"); os.print("Server: jhttp 1.0rn"); os.print("Content-length: " + theData.length + "rn"); os.print("Content-type: " + ct + "rnrn"); } // end try // send the file os.write(theData); os.close(); } // end try catch (IOException e) { // can't find the file if (version.startsWith("HTTP/")) { // send a MIME header os.print("HTTP/1.0 404 File Not Foundrn"); Date now = new Date(); os.print("Date: " + now + "rn"); os.print("Server: jhttp 1.0rn"); os.print("Content-type: text/html" + "rnrn"); } os.println("< HTML >< HEAD >< TITLE >File Not Found< /TITLE >< /HEAD >"); os.println("< BODY >< H1 >HTTP Error 404: File Not Found< /H1 >< /BODY >< /HTML >"); os.close(); } } else { // method does not equal "GET"if (version.startsWith("HTTP/")) { // send a MIME headeros.print("HTTP/1.0 501 Not Implementedrn");Date now = new Date();os.print("Date: " + now + "rn");os.print("Server: jhttp 1.0rn");os.print("Content-type: text/html" + "rnrn"); } os.println("< HTML >< HEAD >< TITLE >Not Implemented< /TITLE >");os.println("< BODY >< H1 >HTTP Error 501: Not Implemented< /H1 >< /BODY >< /HTML >");os.close();} } catch (IOException e) { } try {theConnection.close();} catch (IOException e) {} } public String guessContentTypeFromName(String name) {if (name.endsWith(".html") || name.endsWith(".htm")) return "text/html";else if (name.endsWith(".txt") || name.endsWith(".java")) return "text/plain";else if (name.endsWith(".gif") ) return "image/gif";else if (name.endsWith(".class") ) return "application/octet-stream";else if (name.endsWith(".jpg") || name.endsWith(".jpeg")) return "image/jpeg";else return "text/plain";} } I learned the basics of JAVA web server programming from "JAVA Network Programming" by Elliotte Rusty Harold. Now you don't need to know JAVA to be able to understand that, even though it might not seem like that at first. The important thing to look for when examining the code it the os.print("") commands. There is nothing fancy being used to get the data to the browser, you don't have to mutate the data, its sending plain HTML via a simple command. The plain and simple truth is that the browser is doing the majority of the difficult stuff, when speaking about this simple server. But in complicated servers there is server-side scripting, etc. Webs are much more complicated than just a simple server and Internet Explorer, such as Flash and JAVA Applets (run on clients machine in browser) and server-side stuff like PHP and PEARL (displayed on clients browser as plain HTML but executed as scripting on the server). T he code above is a good way to learn the HTTP standards, even though the program itself ignores most of the regulations. The web browser not only understands HTML but also knows that incoming connection starting with 404 means that the page is missing, etc. It also knows that when "image/gif" is returned the file is an image of type gif. These are not terms the stupid server made up. They are web standards. Generally speaking, there are two standards. There is the w3 standard (ie the real standard based on the first web servers and browsers) and the Microsoft standard (ie the Internet Explorer, IIS and NT standards). The standards are there so anyone can make a server or client and have it be compatible with (nearly) everything else. Hiding your Connection If you have a copy of Visual Basic 6, making a web browser is easy, thanks to Winsock and the code templates included, so I will not put in an example of that. Instead I will explain cool and potentially dangerous things you can do to keep yourself safe. I know those words put together doesn't make sense (ie potentially dangerous and safe), but you will see in a moment. I'm talking about PROXIES. (anonymous proxy servers, to be exact).You connect to the internet on port 80 through the proxy server, thus hiding your real IP. There are many obvious applications for this, but it is also the only really potentially dangerous thing so far, so I will restate what I have written at the top: Whatever you do with this info is your responsibility. I provide information and nothing more. With that said, there is nothing illegal about using an anonymous proxy server as long as it is free and you are harming no one by using it. But if you think you are completely safe using one, you are deadly wrong. They can simply ask the owners of the proxy what your IP is if they really want to find you. If you join a high anonymous server, the chance of them releasing your IP is pretty low for something like stealing music, but if you do something that would actually warrant jail time, they probably will be able to find you. www.publicproxyservers.com is a good site for finding these servers. The last trick related to web servers and port 80 is a simple one. First, find a free website host that supports PHP and use the following code: If the address of this file is http://file.com/script.php, to download the latest Fedora DVD you would go to the following address: http://file.com/script.php?destfile=linuxiso.org/download.php/611/FC3-i386-DVD.iso &password=passwd You can change "passwd" to whatever password you want.This will make any onlookers think you are connected to http://file.com. You are still limited to the speed of your connection, but you are using the bandwidth of the web host Whatever you do with the above information is solely your responsibility. Mike Vollmer --- eblivion
MORE RESOURCES: Unable to open RSS Feed $XMLfilename with error HTTP ERROR: 403, exiting |
RELATED ARTICLES
Cisco Certification: Building Your Home Lab, Part II In the first part of this home lab tutorial, CCNA and CCNP candidates can see that there are a LOT of choices when it comes to what to buy to build your own Cisco practice lab.Having been there myself, I know itâ??s confusing to decide how many routers or switches to buy, and what I need at the minimum to run labs and get some great hands-on practice. Printing Multiple Copies of Photos I do a holiday letter every year and send them to friends so they know what's happening with my family and I ask them about theirs. Though addressing the envelopes and such is a pain, I enjoy doing the letter and adding a wallet-sized photo of my kids to show them off. Smart Apple iPod Tips and Techniques Are you thinking of buying an Apple iPod? Or have you bought one?Almost everyone and anyone that I know seems to have bought an iPod or at least is thinking of getting an ipod for themselves or their loved ones. The iPod is just so alluring! However, do you know what you should do after buying the iPod?Most people don't. Windows PDA Medical Software Benefits PDA Medical BenefitsIf you are concerned about your medical history, the Internet has some great windows medical pda software that is available for free. Freeware is all the rage, and finding good quality freeware that is medically related is easy and fun. Emulation Manual - A Complete Guide on How to Change Your Windows XP to Mac OS X IntroductionMac OS X is the most technologically advanced operating system by Apple. The use of soft edges, translucent colors and pinstripes (similar to the hardware of the first iMacs) brought more color and texture to the windows and controls on the desktop which is what windows lack. Learn the Lost Art of Touch Typing Computers have replaced typewriters, but two-finger, hunt-and-peck typing can never replace the touch typing of a trained professional.A recent report by Robert Johnson in the Boston Globe highlights the decline of typing skills. Repairing A Corrupt .RAR/.ZIP Archive Step 1:Open WinRAR and browse to the folder with your .rar/. Dynamite Comes in Small Packages - Tiny Personal Audio MP3 Players Pack Powerful Music Enjoyment MP3 players are Hot! Playing music has come a long way since the transistor radio, portable tape and CD player days. Most players are no larger than a deck of cards. How To Speed Up Your Aging PC And Make It Healthier Too With a little tweaking and with proper tools, you can get a faster, healthier PC, virtually immune to spyware infections and browser hijackers. How is this possible? Find out about the latest tools and how they work. Your Affiliate Business - Peripherals, Software, Computers I have always been interested in computers, but in the beginning, I would not venture any further than to the software end of learning. However, learning only the software side, and knowing nothing about the hardware side, can open you up to some costly times at the shop. 5 Steps to Remove Spyware for Free Have you ever tried to remove Spyware off your PC only tofind out it never left or it came back? Tired of all thoseannoying Popups, Viruses, and Ads on your system day in andday out? Well, listen closely because the day has come toremove Spyware programs and Viruses - forever!I will give you some very useful tricks and tips to removeSpyware and Viruses for good! Follow closely:Steps to Remove Spyware, Viruses, and Adware1. There are many types of software available today thatclaim to remove spyware off our system, but which one REALLYdoes the job? What you need is software that not only willremove spyware, but TOTALLY removes it for good and keeps itoff. How Do MP3 Players Work? Digital Audio Technology Revolutionizes Music Enjoyment Millions have enjoyed recorded music since 1877 when Thomas Edison invented the phonograph. Then came radio, records, tapes and CD's. 15 Good Programming Habits 1. Before sitting down for coding, you must have formal or a paper-napkin design of the solution to be coded. Help, I Need a New HDTV! (Part 2 of 5) Feeling overwhelmed in selecting a new TV? With all the choices these days, you may feel like, "Where do I start?!"In part 2 of our 5 part article, we the discuss the options in TV technologies---Plasma. Plasma technology contains millions of "pixels" that contain a rare natural gas. Compile .BAT Files into Native Windows Applications (.EXE) Since the DOS days, batch files have been one of the most convenient and immediate ways to accomplish certain tasks. Even today it's possible to find some remarkably sophisticated utilities written as command-line batch files. HTML Explained: Part 1 Want to save money while promoting your web-based business? Of course you do. Here's some advice on the matter, from a freelance copywriter who knows: it pays to learn the basics of HTML. Customize Your Portable Player with an MP3 Player Accessory Everywhere you look today people are listening to personal audio players. And many look for ways to personalize and/or enhance their experience. How To Remove One Operating System from a Dual Boot Windows XP Computer In Windows Xp, you can install two operating systems on the same hard disk of one computer.Whether you have two copies of Windows Xp, or two different operating systems, then you end up with dual boot machine when you restart your Windows Xp computer. Cisco CCNA Candidate FAQ CCNA FAQQ. What exams do I have to take to get my CCNA?A. Dont Let the Internet Overstimulate Your Mind The Internet is an awesome tool, but be careful and aware that the cloud of over stimulation doesn't invade your mind.It seems we have to become aware of a new problem that is starting to invade our modern, industrial society, that being the problem of over stimulation. |
home | site map | contact us |