利用ServerSocket获取浏览器http协议内容
2013-11-28 22:34
465 查看
http协议是使用非常广泛的网络协议,作为网站开发人员,了解http协议是十分重要的。
但是,我不想读官方的http文档,我想直接自己去一点点了解http协议,通过编写socket与浏览器通信。
第一步:获取http header
结果如下:
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部分了。
但是,我不想读官方的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部分了。
相关文章推荐
- 利用ServerSocket获取浏览器http协议内容
- http协议之get请求原理(socket请求web内容)
- Lodrunner Socket协议中获取发送消息长度和内容
- Unity3D 网络通信_HTTP协议:获取网络图片、内容
- Unity3D 网络通信_HTTP协议:获取网络图片、内容
- Unity3D 网络通信_HTTP协议:获取网络图片、内容
- android如何利用基于Http 协议的WebService服务来获取远程数据库数据
- http协议之request案例一:获取浏览器类型
- 利用HttpClient获取网页内容
- Unity3D 网络通信_HTTP协议:获取网络图片、内容
- 利用HttpWebRequest获取网页内容,由于Gzip压缩导致乱码的情况
- php通过$_SERVER['HTTP_USER_AGENT']获取浏览器相关参数
- php通过$_SERVER['HTTP_USER_AGENT']获取浏览器useAgent
- Http协议详解及浏览器里含义,jmeter、postman工具对应内容
- 利用socket自己实现基于HTTP协议的Web服务器
- 利用HTTP协议获取163的联系人列表(1)
- 利用Kali Linux获取http协议加密的账户密码
- HTTP协议实践篇--浏览器缓存总结、利用Fiddler和apache模拟
- 利用HTTP协议获取163的联系人列表(2)
- Unity3D 网络通信_HTTP协议:获取网络图片、内容