创建webserver基础相关类和结构
测试浏览器与服务器的连接
**服务器与客户端的连接**
1、 先建立服务器端 WebServer
1.1 初始化serversocket
serversocket socket =
new serversocket(8080) ;
1.2 建立连接
socket.accept()
1.3 建立内部类处理客户端的请求 并实现Runnable
处理多个请求需要使用线程来处理
ClindHandler implements Runnable
1.3.1)处理客户端的请求需要
socket连接
ClindHandler(SeverSocket socket){
this.soket = socket ;
}
1.3.2) 处理客户端需连接服务器
socket.accept()
//这里就需要连接 服务器 因此需要传入 sock 对应 1)
ClindHandler ch = new ClindHandler(sock) ;
//有多个客户请求 需要有线程来处理 因此 实现Runnable
Thread th = new Thread(ch) ;
th.start() ;
1.3.3)实现Runnable 必须重写run方法
run(){
读:
InputStream in = soket.getInputStream() ;
循环里 in.read() ;
读取时候是必须是ISO8859-8格式 不是UTF-8 这是规定 读取后的HTTP格式 读取客户端的请求格式
请求(request): 分三步 1.请求行 2.消息头 3.消息正文
请求行 GET / HTTP/1.1
消息头 Host: localhost:8080CRLF
Connection: keep-aliveCRLF
Upgrade-Insecure-Requests: 1CRLF
Accept:text/html,application/xhtml+xml,
application/xml;q=0.9,*/*;q=0.8CRLF
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac
OS X 10_14_3) AppleWebKit/605.1.15 (KHTML,
like Gecko) Version/12.0.3 Safari/605.1.15CRLF
Accept-Language: zh-cnCRLF
DNT: 1CRLF
Accept-Encoding: gzip, deflateCRLFCRLF 两个CRLF
说明请求内容结束
消息正文 10101010101011100000101010....
1.3 .4)把读取客户端的请求信息写到另外一个类里,方便改写和读取代码