您的位置:首页 > 理论基础 > 计算机网络

利用ServerSocket获取浏览器http协议内容

2013-11-28 22:34 465 查看
http协议是使用非常广泛的网络协议,作为网站开发人员,了解http协议是十分重要的。

但是,我不想读官方的http文档,我想直接自己去一点点了解http协议,通过编写socket与浏览器通信。

第一步:获取http header

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
public static void main(String args[]) throws IOException{
ServerSocket server = new ServerSocket(2222);
while(true){
try{
Socket client = server.accept();
OutputStream out = client.getOutputStream();
DataOutputStream outStream = new DataOutputStream(client.getOutputStream());
outStream.write("Hello".getBytes());
InputStream in = client.getInputStream();
byte[] buf = new byte[1024];
in.read(buf);
in.close();
System.out.println("request from client " + client.getInetAddress().getHostAddress());
System.out.println(new String(buf));
client.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}


结果如下:

request from client 127.0.0.1

GET /favicon.ico HTTP/1.1

Host: 127.0.0.1:2222

Connection: keep-alive

Accept: */*

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1622.7 Safari/537.36

Accept-Encoding: gzip,deflate,sdch

Accept-Language: zh-CN,zh;q=0.8,en;q=0.6

Cookie: csrftoken=4q6evAi7r0Y72QnhEwXQn8WZgZQr8JTb

从第二行开始就是http协议的header部分了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: