HTTP协议

HTTP协议是W3C指定的一种超文本传输协议,支持包括文字、图片、音频、视频在内的超文本传输。它定义了浏览器(B)和Web服务器(S)之间通信的数据格式,包括请求协议和响应协议。请求协议包含请求行、请求头、空白行和请求体,而响应协议则由状态行、响应头、空白行和响应体组成。状态码如200表示成功,404表示资源未找到,500表示服务器错误。
摘要由CSDN通过智能技术生成

HTTP协议

  • 什么是协议

    • 协议实际上是某些人,活着在某些组织提前指定好的一套规范,大家都按照这个规范来,这样可以做到沟通无障碍。
    • 协议就是一套规范, 就是一套标准,有其他人或其他组织来负责指定的。
    • 我说的话能听懂,你说的话,我也能听懂,这说明我们之间是有一套规范的,一套协议的,这套协议就是:中国普通话协议。我们都遵守这套协议,我们之间就可以沟通无障碍。
  • 什么是HTTP协议?

    • HTTP协议:是W3C指定的一种超文本传输协议。
    • W3C:
      • 万维网联盟
      • 负责制定标准的:HTTP HTM4.0 HTML5 DOM等规范都是W3C制定的。
      • 万维网之父:蒂姆·博纳斯·李
    • 什么是超文本?
      • 超文本说的就是:不是普通文本,比如流媒体:声音、视频、图片等。
      • HTTP协议支持:不但可以传输普通字符串,同样支持传递声音、视频、图片等流媒体信息。
    • 这种协议游走在B与S之间。B向S发数据要遵守HTTP协议。S向B发数据同样需要遵守Http协议。这样B和S才能解耦合。
    • 什么是耦合?
      • B不依赖S。
      • S也不依赖B。
    • B/S表示:B/S结构的系统(浏览器访问WEB服务器的系统)
    • 浏览器 向 WEb服务器发送数据,叫做:请求(requst)
    • WEB服务器 向 浏览器发送数据,叫做:响应(response)
    • HTTP协议包括:
      • 请求协议
        • 浏览器 向 web服务器发送数据的时候,这个发送的数据需要遵循一套标准,这套标准中规定了发送的数据具体格式。
      • 响应协议
        • web服务器 向 浏览器发送数据的时候,这个发送的数据需要遵循一套标准,这套标准中规定了发送的数据具体格式。
    • HTTP协议就是就是提前指定的摸板
  • HTTP的请求协议(B–/S)

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

      • 请求行
      • 请求头
      • 空白行
      • 请求体
    • HTTP请求协议的具体报文:GET请求

      • GET /ser04/get?username=xx&userpwd=123456 HTTP/1.1				请求行
        Host: localhost:8080											请求头
        Connection: keep-alive
        sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"
        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/97.0.4692.71 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/ser04/
        Accept-Encoding: gzip, deflate, br
        Accept-Language: zh-CN,zh;q=0.9
        Cookie: JSESSIONID=9C7EBFB2C660848BC7CCD4857748DAEE
        																空白行
        																请求体
        
    • HTTP请求协议的具体报文:POST请求

      POST /ser04/post HTTP/1.1										请求行
      Host: localhost:8080											请求头
      Connection: keep-alive
      Content-Length: 27
      Cache-Control: max-age=0
      sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"
      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/97.0.4692.71 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/ser04/
      Accept-Encoding: gzip, deflate, br
      Accept-Language: zh-CN,zh;q=0.9
      Cookie: JSESSIONID=9C7EBFB2C660848BC7CCD4857748DAEE
      																空白行
      
      
      username=123456&userpwd=qqq										请求体
      

HTTPd的响应协议(S–/B)

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

    • 状态行
    • 响应头
    • 空白行
    • 响应体
  • HTTP响应协议的具体报文:

    • HTTP/1.1 200											状态行
      Content-Type: text/html;charset=ISO-8859-1				响应头
      Content-Length: 128
      Date: Tue, 08 Feb 2022 08:27:11 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,通过这个面板可以查看协议的具体内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

୧⍤⃝️结衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值