【servlet篇】HTTP协议相关知识点

目录

什么是协议?

什么是HTTP协议?

什么是超文本?

什么是耦合?

进一步理解什么是解耦合?

HTTP协议包括:

请求协议

响应协议

HTTP协议就是提前制定好的一种消息模板。

HTTP的请求协议(B --> S)

HTTP的响应协议(S --> B)

怎么查看的协议内容?


什么是协议?

  • 协议实际上是某些人,或者某些组织提前制定好的一套规范,大家都按照这个规范来,这样可以做到沟通无障碍。

  • 协议就是一套规范,就是一套标准。由其他人或其他组织来负责制定的。

  • 我说的话你能听懂,你说的话,我也能听懂,这说明我们之间是有一套规范的,一套协议的,这套协议就是:中国普通话协议。我们都遵守这套协议,我们之间就可以沟通无障碍。

什么是HTTP协议?

  • HTTP协议:是W3C制定的一种超文本传输协议。(通信协议:发送消息的模板提前被制定好。)

  • 什么是超文本?

    • 超文本说的就是:不是普通文本,比如流媒体:声音、视频、图片等。

    • HTTP协议支持:不但可以传送普通字符串,同样支持传递声音、视频、图片等流媒体信息。

  • 这种协议游走在B和S之间。B向S发数据要遵循HTTP协议。S向B发数据同样需要遵循HTTP协议。这样B和S才能解耦合。

什么是耦合?

  • 耦合:
  • 有一对热恋中的男女,水深火热的,谁离开谁都不行了,离开就得死,要是对方有一点风吹草动,这一方就得地动山摇。可以按照琼瑶阿姨的路子继续想象,想成什么样都不过分,他们之间的这种状态就应该叫做“耦合”。
  • 解耦:
  • 他们这么下去,有人看不惯了,有一些掌握话语权的权利机构觉得有必要出面阻止了,这样下去不是个事吖,你得先爱祖国,爱社会,爱人民,爱这大好河山才行啊,于是棒打鸳鸯,让他们之间对对方的需要,抽象成一种生理需要,这就好办了,把她抽象成女人,他抽象成男人,当他需要女人时,就把她当做女人送来,反之亦然,看上去他们仍在一起,没什么变化,实质上呢,他们已经被成功的拆散了,当有一天他需要女人时,来了另外一个女人,嘿嘿 他不会反对的。对方怎么变他也不会关心了。这就是“解耦”。

进一步理解什么是解耦合?

  • B不依赖S。

  • S也不依赖B。

  • B/S表示:B/S结构的系统(浏览器访问WEB服务器的系统)

  • 浏览器 向 WEB服务器发送数据,叫做:请求(request)

  • WEB服务器 向 浏览器发送数据,叫做:响应(response)

HTTP协议包括:

  • 请求协议

    • 浏览器 向 WEB服务器发送数据的时候,这个发送的数据需要遵循一套标准,这套标准中规定了发送的数据具体格式。

  • 响应协议

    • WEB服务器 向 浏览器发送数据的时候,这个发送的数据需要遵循一套标准,这套标准中规定了发送的数据具体格式。

HTTP协议就是提前制定好的一种消息模板。

  • 不管你是哪个品牌的浏览器,都是这么发,不管你是哪个品牌的WEB服务器,都是这么发。

  • FF浏览器 可以向 Tomcat发送请求,也可以向Jetty服务器发送请求。浏览器不依赖具体的服务器品牌。

  • WEB服务器也不依赖具体的浏览器品牌。可以是FF浏览器,也可以是Chrome浏览器,可以是IE,都行。

HTTP的请求协议(B --> S)

  • HTTP的请求协议包括:4部分

  1. 请求行
  2. 请求头
  3. 空白行
  4. 请求体
  • HTTP请求协议的具体报文:GET请求

     GET /servlet05/getServlet?username=lucy&userpwd=1111 HTTP/1.1                      请求行
     Host: localhost:8080                                                               请求头
     Connection: keep-alive
     sec-ch-ua: "Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"
     sec-ch-ua-mobile: ?0
     sec-ch-ua-platform: "Windows"
     Upgrade-Insecure-Requests: 1
     User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
     Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
     Sec-Fetch-Site: same-origin
     Sec-Fetch-Mode: navigate
     Sec-Fetch-User: ?1
     Sec-Fetch-Dest: document
     Referer: http://localhost:8080/servlet05/index.html
     Accept-Encoding: gzip, deflate, br
     Accept-Language: zh-CN,zh;q=0.9
                                                                                        空白行
                                                                                        请求体
  • HTTP请求协议的具体报文:POST请求

     POST /servlet05/postServlet HTTP/1.1                                                  请求行
     Host: localhost:8080                                                                  请求头
     Connection: keep-alive
     Content-Length: 25
     Cache-Control: max-age=0
     sec-ch-ua: "Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"
     sec-ch-ua-mobile: ?0
     sec-ch-ua-platform: "Windows"
     Upgrade-Insecure-Requests: 1
     Origin: http://localhost:8080
     Content-Type: application/x-www-form-urlencoded
     User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
     Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
     Sec-Fetch-Site: same-origin
     Sec-Fetch-Mode: navigate
     Sec-Fetch-User: ?1
     Sec-Fetch-Dest: document
     Referer: http://localhost:8080/servlet05/index.html
     Accept-Encoding: gzip, deflate, br
     Accept-Language: zh-CN,zh;q=0.9
                                                                                           空白行
     username=lisi&userpwd=123                                                             请求体
  • 请求行

    • 包括三部分:

      • 第一部分:请求方式(7种)

  • get(常用的),post(常用的),delete ,put  ,head  ,options, trace
  • 第二部分:URI

    • 什么是URI? 统一资源标识符。代表网络中某个资源的名字。但是通过URI是无法定位资源的。

    • 什么是URL?统一资源定位符。代表网络中某个资源,同时,通过URL是可以定位到该资源的。

    • URI和URL什么关系,有什么区别?

  • 第三部分:HTTP协议版本号

  • 请求头

    • 请求的主机

    • 主机的端口

    • 浏览器信息

    • 平台信息

    • cookie等信息

    • ....

  • 空白行

    • 空白行是用来区分“请求头”和“请求体”

  • 请求体

    • 向服务器发送的具体数据。

HTTP的响应协议(S --> B)

  • HTTP的响应协议包括:4部分

    • 状态行

    • 响应头

    • 空白行

    • 响应体

  • HTTP响应协议的具体报文:

     HTTP/1.1 200 ok                                     状态行
     Content-Type: text/html;charset=UTF-8               响应头
     Content-Length: 160
     Date: Mon, 08 Nov 2021 13:19:32 GMT
     Keep-Alive: timeout=20
     Connection: keep-alive
                                                         空白行
     <!doctype html>                                     响应体
     <html>
         <head>
             <title>from get servlet</title>
         </head>
         <body>
             <h1>from get servlet</h1>
         </body>
     </html>

  • 状态行

    • 三部分组成

      • 第一部分:协议版本号(HTTP/1.1)

      • 第二部分:状态码(HTTP协议中规定的响应状态号。不同的响应结果对应不同的号码。)

        • 200 表示请求响应成功,正常结束。

        • 404表示访问的资源不存在,通常是因为要么是你路径写错了,要么是路径写对了,但是服务器中对应的资源并没有启动成功。总之404错误是前端错误。

        • 405表示前端发送的请求方式与后端请求的处理方式不一致时发生:

          • 比如:前端是POST请求,后端的处理方式按照get方式进行处理时,发生405

          • 比如:前端是GET请求,后端的处理方式按照post方式进行处理时,发生405

        • 500表示服务器端的程序出现了异常。一般会认为是服务器端的错误导致的。

        • 以4开始的,一般是浏览器端的错误导致的。

        • 以5开始的,一般是服务器端的错误导致的。

      • 第三部分:状态的描述信息

        • ok 表示正常成功结束。

        • not found 表示资源找不到。

  • 响应头:

    • 响应的内容类型

    • 响应的内容长度

    • 响应的时间

    • ....

  • 空白行:

    • 用来分隔“响应头”和“响应体”的。

  • 响应体:

    • 响应体就是响应的正文,这些内容是一个长的字符串,这个字符串被浏览器渲染,解释并执行,最终展示出效果。

怎么查看的协议内容?

  • 使用chrome浏览器:F12。然后找到network,通过这个面板可以查看协议的具体内容。

  • 怎么向服务器发送GET请求,怎么向服务器发送POST请求?

    • 到目前为止,只有一种情况可以发送POST请求:使用form表单,并且form标签中的method属性值为:method="post"。

    • 其他所有情况一律都是get请求:

      • 在浏览器地址栏上直接输入URL,敲回车,属于get请求。

      • 在浏览器上直接点击超链接,属于get请求。

      • 使用form表单提交数据时,form标签中没有写method属性,默认就是get

      • 或者使用form的时候,form标签中method属性值为:method="get"

      • ....

猜你喜欢

转载自blog.csdn.net/m0_64231944/article/details/128764160