Http是一个基于请求/响应模式的,无状态的协议.
请求
响应
package com.atChina.chat.demo04;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class MyHttp {
private ServerSocket server;
public static void main(String[] args){
MyHttp myHttp = new MyHttp();
myHttp.start();
}
public void start(){
try {
server = new ServerSocket(9999);
receive();
} catch (IOException e) {
e.printStackTrace();
}
}
public void receive(){
try {
Socket client = server.accept();
byte[] bts = new byte[20480];
int len = client.getInputStream().read(bts);
String requestInfo = new String(bts, 0, len).trim();
// 将请求打印
System.out.println(requestInfo);
// 响应体
StringBuilder responseContent = new StringBuilder();
responseContent.append("<html><head><title>你好</title></head><body>hello world!!<body></html>");
// 响应头
StringBuilder response = new StringBuilder();
// HTTP协议版本, 状态代码, 描述
response.append("HTTP/1.1 200 OK\r\n");
// 服务器版本信息
response.append("Server:china Server/0.0.1\r\n");
response.append("Date:").append(new Date()).append("\r\n");
response.append("Content-type:text/html;charset=utf-8\r\n");
response.append("Content-Length:").append(responseContent.toString().getBytes().length).append("\r\n");
response.append("\r\n");
response.append(responseContent);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
bw.write(response.toString());
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void stop(){
}
}
最原始的将html"返回"给浏览器,就是写在字符串中,然后用输出流输出这些字符串。 html写在字符串中,很不方便,所以jsp技术慢慢发展起来。