写点什么

JavaWeb 之 HTTP 协议 (一)

作者:Java高工P7
  • 2021 年 11 月 11 日
  • 本文字数:1130 字

    阅读完需:约 4 分钟

  • 客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”


1.1、浏览器中的书写格式




服务器端资源需要通过浏览器进行,此时由浏览器将我们给出的请求解析为满足 HTTP 协议的格式并发出。我们发出的请求格式需要按照浏览器规定的格式来书写,在浏览器中书写格式如下:



  • 当浏览器获取到信息以后,按照特定格式解析并发送即可

  • 接收到服务器端给出的响应时,也按照 HTTP 协议进行解析获取到各个数据,最后按照特定格式展示给用户


1.2、HTTP 协议的特点




  1. 支持客户/服务器模式

  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快

  3. 灵活:HTTP 允许传输任意类型的数据对象。传输的类型由Content-Type加以标记

  4. 无连接:无连接是表示每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间


  • HTTP1.1 版本后支持可持续连接。通过这种连接,就有可能在建立一个 TCP 连接后,发送请求并得到回应,然后发送更多的请求并得到更多的回应

  • 通过把建立和释放 TCP 连接的开销分摊到多个请求上,则对于每个请求而言,由于 TCP 而造成的相对开销被大大地降低了。而且,还可以发送流水线请求,也就是说在发送请求 1 之后的回应到来之前就可以发送请求 2 。也可以认为,一次连接发送多个请求,由客户机确认是否关闭连接,而服务器会认为这些请求分别来自不同的客户端


  1. 无状态:HTTP 协议是无状态协议


  • 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时,它的应答就较快。


1.3、HTTP 请求




  • HTTP 请求由三部分组成,分别是:请求行、请求头、请求体

  • 请求行:HTTP 协议的第一行(请求行由以下三部分组成)

  • 请求方式 GET/POST

  • 请求路径 URL

  • 请求协议版本 HTTP/1.1

  • 请求头:协议中的键值对

  • 请求体:传递给服务器的数据(GET 请求是没有请求体的,因为 GET 请求会将它请求的数据直接跟在地址栏后面)


在浏览器中 F12 -> Network -> 刷新网页即可显示查看请求消息和响应消息。


1.3.1、GET 请求(没有请求体)

1.3.2、Post 请求

1.3.3、请求的格式

请求的格式如下:


请求行


请求头 1


请求头 2


....


请求空行


请求体


请求行以一个方法符号开头,以空格分开,后面跟着请求的 URL 和协议的版本


? 格式如下:Method Request-URI HTTP-Version CRLF


  • Method 表示请求方法;

  • Request-URI 是一个统一资源标识符;

  • HTTP-Version 表示请求的 HTTP 协议版本

  • CRLF 表示回车和换行



1.4、HTTP 响应




在接收和解释请求消息后,服务器会返回一个 HTTP 响应消息。HTTP 响应也是由三部分组成,分别是:

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
JavaWeb之HTTP协议(一)