Project Description โน๏ธ
This project is a lightweight web browser application that can send HTTP requests, process
responses, and render web content. It includes basic functionalities such as handling redirects,
reading server responses, and displaying error messages in a simple web view.
Features of the Web-Surfer Application ๐
- Basic Web Navigation: Users can enter URLs and load web pages.
- Custom User-Agent Support: The browser sets a specific User-Agent for HTTP
requests.
- Error Handling: Displays user-friendly error messages for bad requests or
connection issues.
- HTTP Request Handling: Supports sending HTTP GET requests to retrieve web
content.
- Redirect Handling: Detects redirection responses and processes them
accordingly.
Technologies Used ๐ฉ๐ปโ๐ป
- Programming Language: Java
- Networking: Java Sockets (for HTTP requests)
- UI Framework: JavaFX WebView
- Multi-threading: Used for handling server responses without freezing the UI
Built With ๐ ๏ธ
The Web-Surfer App was developed using the following technologies:
- Java
- JavaFX (for UI & WebView)
Getting Started
Welcome to Web-Surfer Project
Prerequisites to Contribute or Understand This Project
1. Networking in Java
- How Domain Name System (DNS) works
- How HTTP Request/ Response works
2. Java Programming
- Core concepts and object-oriented principles
3. JavaFX
- UI and WebView for rendering pages
4. Multi-threading
- Handling network responses efficiently
5. HTTP Protocols
- GET requests
- Headers and response handling
Installation ๐ป
Below is an example of how you can install and set up the Web-Surfer.
- Clone the repo:
git clone https://github.com/Isuranga-Seram/Web-Surfer.git
cd Web-Surfer
- Change git remote URL to avoid accidental pushes to the base project:
git remote set-url origin github_username/repo_name #optional
git remote -v # confirm the changes
- Now you can run the app
Enjoy !!
Usage
The Web-Surfer app has a variety of uses, such as:
- Personal Browser ๐: Can be extended with additional features like bookmarks
or history.
- Development Testing ๐ : Helps developers understand network programming,
multi-threading, and HTTP request/response handling.
- Educational Purpose ๐: Learn how web browsers work internally.
Contributing ๐ช
๐ "Great projects thrive on collaboration! Join us in building something amazingโcontribute your
skills, ideas, and code to make this web browser even better!" ๐กโจ
Potential Enhancements :
- Enhance UI for better user experience.
- Improve request handling (e.g., adding support for POST requests).
- Implement JavaScript and CSS support for modern web standards.
- Add tabbed browsing functionality.