HTTP协议初见

什么是协议 ?

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

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

HTTP协议 ?!

  • HTTP协议:是W3C制定的一种超文本传输协议。

  • W3C:

    • 万维网联盟组织

    • 负责制定标准:HTTP HTML4.0 HTML5 XML DOM标准等规范都是万维网所制定的。

    • 万维网之父:蒂姆·伯纳斯·李

  • 什么是超文本?

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

    • HTTP协议支持:不但可以传输普通字符串,同样支持流媒体信息。

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

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

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

  • 这种协议游走在B和S之间。这样子B和S才能够解耦合。

  • 那么,什么是解耦合呢?

    • B不依赖于S。

    • S也不依赖于B。

  • 怎么查看的协议内容?

    • 使用火狐浏览器(其他浏览器应该也是类似的):F12。然后找到network,通过这个面板可以查看协议的具体内容。

  • HTTP协议的具体响应报(response)

    • HTTP/1.1 200  //请求头
      Content-Type: text/html;charset=UTF-8  //请求体
      Content-Length: 1117
      Date: Tue, 15 Feb 2022 15:09:07 GMT
      Keep-Alive: timeout=20
      Connection: keep-alive
                                      //空白行
      <html>                           //响应体
      <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          <title>用户登录</title>
      </head>
      <body>
      </body>
      </html>
    • 状态行

      • 三部分组成

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

        • 第二部分:状态码

          • 200 表示访问成功

          • 404 表示访问的资源不存在,通常要么是路径写错了,要么是路径写错了。要么就是对应的资源并没有启动。总之404错误是前端的错误。

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

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

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

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

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

          • ok表示成功。

          • not found表示资源找不到。

      • 请求行

        • 也是三部分组成

          • 请求方式(7种)

            • get,post,delete,put,head,options,trace

          • URI

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

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

            • URL和URI是什么关系?

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

GET请求和POST请求有什么区别?

  • get请求发送请求的时候,数据会挂在URL的后面,然后跟一个?,然后在跟数据。这样子会导致数据会显示在地址栏里面。会泄露数据。

  • post会在请求体中装填数据,并不能从地址栏上直接获得。但是哪怕是在请求体中所发送,也应该注意密码等敏感信息应该以加密过后的密文进行发送。

  • 发送的请求数据格式一律是:name=value&name=value&name=value......

    • <input type="text" name="userid" id="userid" value=""/>
    • name是什么?

      • 以form表单为例:form表单中input标签的name

    • value是什么?

      • 以form表单为例:form表单中input标签的value

GET和POST该怎么来选择?

  • get请求只能发送普通的字符串。并且发送的字符串长度有限制,不同的浏览器限制不同,并没有明确的规定。所以说get无法发送大数据量。

  • post请求可以发送大数据,流媒体。理论上没有长度限制。

  • W3C中是这样说的:get比较适合从服务器来获取数据,post比较适合向服务器发送数据。正好印证了get与post的单词之意。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值