Q1. Write a program for HTTP client, preferably in Java language, that uses TCP socket. The program should take inputs from the user, like the URL of the object, HTTP request message headers and their values, and any other information. From the URL, the program should find the IP address(s) of the server. Then, the program should establish a TCP connection with the server. After this, the program should send the HTTP request message inputted by the user. After receiving the server's response, the program should display the HTTP response message by displaying the headers and their values. At least you should run the program for 10 URLs such that there is at least one response with HTTP response code 200, 400, 404, and505. From each of the response message, please answer the following questions