增样基于http协议使用Socket写一个web服务器和一个web浏览器

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:19:37
如果我在Socket套接字的层次上想自己写一个web浏览器,和对应的web服务器大概应该怎么写,比如说,我写一个套接字客户端程序,等他联接到某个web服务器时,客户端应该给他发送什么用的二进制数据,才能获得web服务的返回数据,获得后怎样提取和分离里面的数据,我是说从底层编程的角度考虑,望大侠指点。

最简单的http请求是
GET / HTTP/1.0
其中GET是关键字
/表示请求的是跟目录主页
HTTP/1.0表示使用HTTP协议的1.0版本通讯

作为服务器端,这是会向服务器返回首页的全部html代码

至此,一个最简单的http通讯就完成了。但是,此时网页还不能正常显示,因为服务器仅仅返回了html代码,客户端还必须根据html代码中涉及的其他文件(例如css、js、图象、flash等等)的地址获得相应文件,才能使网页正常显示

下面是http server和client的最简单实现(java)
import java.net.*;
import java.io.*;
import java.util.*;
public class Client
{
public static void main(String[] args)
{
String arg0;
if(args.length!=1)
{
System.out.println("Server name not founud!");
return;
}
else
{
arg0=args[0];
if(arg0.toLowerCase().indexOf("http://")!=0)
arg0="http://"+arg0;
}
try
{
java.net.URL theURL=new java.net.URL(arg0);
java.net.URLConnection conn=theURL.openConnection();
if(conn instanceof java.net.HttpURLConnection)
{
java.net.HttpURLConnection hConn=(HttpURLConnection)conn;
hConn.setFollow