套接字模拟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构建方法 

你可能感兴趣的:(套接字模拟http服务器)