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

手写服务器httpserver_准备_http协议_http工具JAVA197-198

2016-03-17 21:09 585 查看
来源:http://www.bjsxt.com/

一、S02E197_01手写服务器httpserver_准备_http协议















package com.test.server;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
/**
* 创建服务器,并启动
* 1、请求
* 2、响应
*/
public class ServerForResponse {
private ServerSocket server;
private static final String CRLF = "\r\n";
private static final String BLANK = " ";

public static void main(String[] args) {
ServerForResponse server = new ServerForResponse();
server.start();
}
/**
* 启动方法
*/
public void start(){
try {
server = new ServerSocket(8888);
this.receive();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 接收客户端
*/
private void receive(){
try {
Socket client =server.accept();
StringBuilder sb =new StringBuilder();

byte[] date = new byte[20480];
int len = client.getInputStream().read(date);

//接收客户端的请求信息
String requestInfo = new String(date,0,len).trim();
System.out.println(requestInfo);

//响应
StringBuilder responseContext = new StringBuilder();
responseContext.append("<html><head><title>HTTP响应示例</title>" +
"</head><body>Hello World!</body></html>");

StringBuilder response = new StringBuilder();
//1)HTTP协议版本、状态代码、描述
response.append("HTTP/1.1").append(BLANK).append("200").append(BLANK).append("OK").append(CRLF);
//2)响应头(Response Head)
response.append("Server:test Server/0.0.1").append(CRLF);
response.append("Date:").append(new Date()).append(CRLF);
response.append("Content-type:text/html;charset=GBK").append(CRLF);
//正文长度:字节长度
response.append("Content-Length:").append(responseContext.toString().getBytes().length).append(CRLF);
//3)正文之前
response.append(CRLF);
//4)正文
response.append(responseContext);

//输出流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
bw.write(response.toString());
bw.flush();
bw.close();
} catch (IOException e) {
//e.printStackTrace();
}
}
/**
* 停止服务器
*/
public void stop(){

}
}


二、S02E198_01手写服务器httpserver_准备_http工具

HTTP响应分析







HTTP工具:HttpWatch——捕捉信息,便于查看请求响应内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: