套接字模拟http服务器
套接字模拟http服务器
http协议的底层是靠TCP协议,也就是面向连接的
一开始的过程很容易理解,就是建立连接,
Socket socket = new Socket(host, 80);创建了套接字,然后获取他输入输出流
重点来看看协议的内容
第一行 sb.append("POST "+path+" HTTP/1.1\r\n"); 三个关键字用空格分隔,分别是反问方式,访问路径,协议
第二行 sb.append("Host:"+host+"\r\n"); 响应的主机
中间几行信息并不重要
sb.append("Content-Type:text/xml\r\n"); 内容的格式,text/xml意思xml文本,这个格式包括json,文件等
sb.append("Content-Length:"+outputStr.length()+1+"\r\n");内容的长度,
sb.append("\r\n");sb.append(outputStr);sb.append("\r\n");真正的消息
以上就构造好了请求信息,把请求信息写入输出流,连接的服务端就可以读取到请求信息
服务端会根据请求的信息返回响应内容
而此时就可以通过输入流读取到服务端 响应的内容
以上过程只适用于http协议,并不适用于https
对于https的Socket必须使用SSLSocket,其余并无差别,SSLSocket构建方法