http协议简析

99 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情

  • http简介
  1. http是超文本传输协议,建立在TCP协议上面。

  2. HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。HTTP协议是无状态的,指的是HTTP协议对事务处理没有记忆能力,服务器不知道客户端是什么状态。即第一次和第二次发起对应的请求之间没有任何联系。

  • 浏览器输入地址的一些变化
  1. 浏览器输入地址后会先于服务端建立连接,然后请求服务端发送文本信息。
  2. 服务端接收请求后会进行处理然后返回文本信息。
  3. 浏览器接收到了服务端返回的信息进行解析最终我们看到了我们的页面信息。
  4. 浏览器和服务端关闭连接
  • 一个最简单的java web服务器
public static void main(String[] args) throws IOException {
	// 创建服务端socket
	ServerSocket serverSocket = new ServerSocket(8088);
	// 创建客户端socket
	Socket socket = new Socket();
	// 循环监听等待客户端的连接
	while (true) {
		// 监听客户端
		socket = serverSocket.accept();
		BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
		String sb = new String();
		StringBuffer buffer = new StringBuffer();
		while (!"".equals((sb = reader.readLine()))) {
			buffer.append(sb);
			buffer.append("\r\n");
		}
		System.out.println(buffer.toString());
	
		String responseMsg = "HTTP/1.1 200 OK\r\n"+
		                     "Content-type: text/html\r\n\r\n";
		writer.println(responseMsg);
		writer.println("hello");
		writer.flush();
		writer.close();
		reader.close();
	}
}
  • 浏览器进行访问后看下后台接收的信息

接收到的信息就是http的请求协议了,是个get请求,协议版本1.1 下面是写其他信息例如请求的浏览器信息,系统信息,接收的协议,等

image.png

  • 注意返回数据需要由返回的状态码和文本协议名称

image.png