HTTP的全称 HyperText Transfer Protocol,即超文本传输协议,程序员自己发明的协议之一,基于TCP的应用层协议。 HTTP协议是基于请求-响应的模式:
HTTP是一种无状态协议,HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。
HTTP是一种无连接协议, 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间,并且可以提高并发性能,不能和每个用户建立长久的连接,请求一次相应一次,服务端和客户端就中断了。但是无连接有两种方式,早期的http协议是一个请求一个响应之后,直接就断开了,但是现在的http协议1.1版本不是直接就断开了,而是等几秒钟,这几秒钟是等什么呢,等着用户有后续的操作,如果用户在这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这几秒钟用户没有发送新的请求,那么就会断开连接,这样可以提高效率,减少短时间内建立连接的次数,因为建立连接也是耗时的,默认的好像是3秒中现在,但是这个时间是可以通过咱们后端的代码来调整的,自己网站根据自己网站用户的行为来分析统计出一个最优的等待时间。
我经常遇到的状态码:
javapublic class HttpServer {
public static void main(String[] args) throws Exception{
ServerSocket serverSocket = new ServerSocket(80);
Socket accept = serverSocket.accept();
OutputStream outputStream = accept.getOutputStream();
Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
writer.write("HTTP/1.0 200 OK\r\n");
writer.write("Set-Cookie:CookieName=HelloCookie\r\n");
writer.write("\r\n");
writer.write("<h1>Hello, Http Server<h1>");
writer.flush();
writer.close();
outputStream.close();
serverSocket.close();
}
}
而且还携带了Cookie
本文作者:Tim
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!