模拟Web服务器
Posted 北方丶有佳人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟Web服务器相关的知识,希望对你有一定的参考价值。
模拟一个web服务器获取浏览器发来的请求头消息
import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class MyServer { public static void main(String[] args) throws IOException { /* * 创建一个服务器为了获取浏览器发送的数据 */ System.out.println("服务器端启动...."); ServerSocket ss = new ServerSocket(9090); Socket s = ss.accept(); System.out.println(s.getInetAddress().getHostAddress()+"....connected"); //接收浏览器的数据 InputStream in = s.getInputStream(); byte[] buf = new byte[1024]; int len = in.read(buf); String str = new String(buf,0,len); System.out.println(str); //给浏览器一个回馈 PrintWriter out = new PrintWriter(s.getOutputStream(),true);//自动刷新 out.println("<font size=‘7‘ color = ‘green‘>欢迎光临,你访问的是XXX的服务器</font>"); s.close(); ss.close(); } }
在浏览器的地址栏中输入:http://127.0.0.1:9090/ 后服务端获取到的请求头消息如下:
GET /myapp/1.jpg HTTP/1.1 //请求行。请求方式 ,请求的资源路径, http协议版本
请求头消息中的属性信息。
Host: 192.168.***.***:9090
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0
Accept-Encoding: gzip, deflate, sdch //封装的压缩方式
Accept-Language: zh-CN,zh;q=0.8
空行
//请求体(用空行分割)
以上是关于模拟Web服务器的主要内容,如果未能解决你的问题,请参考以下文章