Web Browser

Ukończone Opublikowano 5 lat temu Płatność przy odbiorze
Ukończone Płatność przy odbiorze

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

HTML HTML5 Java JavaScript Architektura oprogramowania

Numer ID Projektu: #17077372

O projekcie

5 ofert Zdalny projekt Aktywny 5 lat temu

Przyznany użytkownikowi:

imRaziel

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

$100 USD w ciągu 3 dni
(43 ocen)
5.6

5 freelancerów złożyło ofertę za $144 w tym projekcie

itwaysindia

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 w ciągu 3 dni
(11 Oceny)
4.6
Uplidcoder

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 Więcej

$250 USD w ciągu 7 dni
(8 Oceny)
3.4
SatomiIshihara

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 Więcej

$155 USD w ciągu 2 dni
(0 Oceny)
0.0