Web Browser

For this program, you will be writing a web browser application. Your browser will display text only and will communicate with a standard web server.

Your text-only browser will not be able to display images, multimedia, special fonts, JavaScript, etc. It will support hyperlinks. We're concerned with the networking aspect, not the presentation aspect. I will provide you with simple web pages (with text and one image) that your program can retrieve that do not have this content in them. You will need to use TCP socket calls. The browser is a client program.


For the browser:

Hyperlinks embedded in the page should be indicated with a X) printed in front of the linked text. The X should be replaced with the link's relative order in the page (i.e., 1,2,3...).

For each page viewed, the user/client should be prompted to:

• Select one of the numbered links or

• Specify a new URL.

On startup, the user/client has only one choice, entering a URL (e.g. [login to view URL]~td4679/Pgm3/[login to view URL]

Now you want to:

• Parse the URL to separate the protocol, machine name, and file location.

• Resolve the name (get the corresponding IP address – use gethostbyname()

• Set up a TCP connection with the web server at that address

• Send an HTTP request for the requested page

• Receive the HTML file and display the page. This includes parsing the HTML code (primarily, throwing most of it away), indicating the links, and printing a prompt for the user (like "Enter choice 1..3 or a new URL").

• The user will then type the number of one of the links or enter a new URL and the process repeats.

Note that the MIME header contains the length of the web page in bytes. When you've read this many bytes, you know you are done and can close the TCP connection.

When parsing the HTML, things don't need to look pretty. Basically, do not print anything which is between '<' and '>'. These are HTML instructions, not text.

Exceptions to this rule are the links themselves, which begin:

<A HREF="[login to view URL]~td4679/Pgm3/[login to view URL]" > start</A >

For these, you should save the URL in an array or linked list and print out the hyperlink text start and print a number X) before the text indicating the relative link position in the page (e.g. 1) if this is the first link in the page). Again, the user can then select from these numbered links to choose the next page to load.

There are two methods for representing the URLs, an absolute URL or a relative URL.

An absolute URL looks like this: [login to view URL]~td4679/Pgm3/[login to view URL] and includes the protocol, hostname, and file location.

A relative URL might look like [login to view URL] In this case, you are to assume that the protocol, host, and directory are the same as the presently shown page and only the file name changes. You can decide which you wish to use.

Also, when you see the tags <br> or <p> you should insert a blank line in the output.

The HTTP GET command needs to be followed by two control (CR) linefeed (LF) pairs in HTTP version 1.0. CR is ASCII value 13, linefeed is ASCII value 10.

The web server (csweb01) will be listening to port 80 (the standard port).

You will show that your browser works by displaying a few web pages, following some links in them, and capturing the output to a script file.

Example in file attatched

Skills: HTML, HTML5, Java, Javascript, Software Architecture

See more: top 10 web browsers, types of web browser, web browsers list, examples of web browsers, opera web browser, 10 examples of web browser, web browsers for windows, web browser download, java based web browser game script, web browser emulation php script, mmorpg web browser game script clone, buy web browser game script, web browser multiplayer game script, buy script web browser game, web browser based game script, web browser game script, web browser compatible java script, writing web browser script, web browser strategy games script, minimize web browser java script

About the Employer:
( 1 review ) San Jose, United States

Project ID: #17077372

Awarded to:


hi. i can do it. it is not clear what language you need it in java or javascript? i can do any More

$100 USD in 3 days
(43 Reviews)

5 freelancers are bidding on average $144 for this job


We have immense knowledge in developing web solution and ready to work in the mentioned platforms. I'm excellent in various programming language and strong at Back end and Front end development.

$155 USD in 3 days
(11 Reviews)

Hey bro, If the language doesn't matter, I can use Java to write it. I have experience writing networked Java applications using Java's NIO library, so it can use the latest in Java API standards. Otherwise, I can d More

$250 USD in 7 days
(8 Reviews)
$61 USD in 2 days
(6 Reviews)

Dear Sir! Thanks for inviting me to submit a proposal .I have read the job description and got very interested in working on this project as it perfectly fits in my skill stack. Talk about a perfect match! I’ll keep t More

$155 USD in 2 days
(0 Reviews)