美文网首页
网络协议-HTTP

网络协议-HTTP

作者: lieon | 来源:发表于2021-05-20 00:20 被阅读0次

    HTTP-请求方法(8种)

    • GET 、HEAD 、POST 、PUT 、DELETE 、CONNECT 、OPTIONS 、TRACE

    • GET :常用于读取的操作,请求参数直接拼在 URL 的后面(浏览器对 URL 是有长度限制的)

    • POST :常用于添加、修改删除的操作,请求参数可以放到请求体中(没有大小限制)

    • HEAD:请求得到与 GET 请求相同的响应,但没有响应体, 使用场景举例:在下载一个大文件前,先获取其小再决定是否要。以此可节约带宽资源

    • OPTIONS :用于获取目的资源所支持通信选项,比如服务器请求方法,OPTIONS * HTTP/1.1

    • PUT :用于对已存在的资源进行整体覆盖

    • PATCH:用于对资源进行部分修改(不存在,会创建新的)

    • DELETE :用于删除指定的资源

    • TRACE:请求服务器回显其收到的信息,主要用于 HTTP 请求的测试或诊断

    • CONNECT:可以开启一个客户端与所请求资源之间的双向沟通道,它用来创建隧道( tunnel ),可以用来访问采了 SSL (HTTPS) 协议的站点

    头部字段

    • 请求头字段( Request Header Fields Fields)
      • 有关要获取的资源或客户端本身信息消息头
    • 响应头字段( Response Header Fields Fields)
      • 有关响应的补充信息,比如服务器本身(名称和版等)消息头
    • 实体头字段( Entity Header Fields Fields)
      • 有关实体主的更多信息,比如长度( ContentContent-Length )或其 MIME 类型
    • 通用头字段( General Header Fields Fields)
      • 同时适用于请求和响应消息,但与主体无关的头

    请求头

    请求头字段

    响应头

    响应头字段

    Cookie与Session

    • Cookie与Session机制通常用来记录状态,比如登录状态
    • Cookie存放在客户端浏览器
    • Session存放在服务端
    Cookie与Session的应用 - 摘自MJ网络协议
    Cookie与Session的应用 - 摘自MJ网络协议
    • 假想一个登录案例,在浏览器中没有登录的状态下,直接访问用户数据接口,此时浏览器会重定向访问到登录页,当用户登录成功之后,再次访问用户数据接口时,会直接返回用户数据
    • 在浏览器中通常采用Cookie-Session技术来记录此状态
    • 当在浏览器登录之后,服务端会将一一些登录信息保存在session中,此时服务端在进行对请求进行set-cookie,返回值响应头的Set-Cookie字段中,返回给客户端
    • 客户端收到这个响应之后,会将Cookie存放在本地磁盘中,在下一个请求时,会在请求头字段的Cookie中,带上本地的Cookie数据
    • 服务端从请求头的Cookie字段中取出响应的信息,获取到sesionId,通过sessid找到对应的session,从而取出里面保存的信息,进行一些业务上的校验,再决定是否返回数据给客户端

    状态码( Status Code)

    • 状态码可以分为 5类
    • 信息响应: 100~199
    • 成功响应: 200~299
    • 重定向: 300~399
    • 客户端错误: 400~499
    • 服务器错误 :500~599

    常见状态码

    • 100 Continue

      • 请求的初始部分已经被服务器收到,并且没有拒绝。客户端应该继续发送剩余如果完成,就忽略这个响应
      • 允许客户端发送带请求体的前,判断服务器是否愿意接收(通过头)
    • 在某些情况下,如果服务器不看请求体就拒绝时客户端发送是恰当的
      或低效

    • 200 OK:请求成功

    • 302 Found:请求的资源被暂时移动到了由 Location 头部指定的 URL 上

    • 304 Not Modified Modified:说明无需再次传输请求的内容
      ,也就是可以使用缓存

    • 400 Bad Request Request:由于语法无效,服务器理解该请求

    • 401 Unauthorized Unauthorized:由于缺乏目标资源要求的身份验证

    • 403 Forbidden Forbidden:服务器端有能力处理该请求,但是拒绝授权访问

    • 404 Not Found Found:服务器端无法找到所请求的资源

    • 405 Method Not Allowed Allowed:服务器禁止了使用当前 HTTP 方法的请求

    • 406 Not Acceptable Acceptable:服务器端无法提供与 Accept -Charset 以及 Accept -Language 指定的值相匹配响应

    • 408 Request Timeout Timeout:服务器想要将没有在使用的连接关闭,一些服务器会在空闲连接上发送此信息,即便是客户端没有任何请求的情况下

    • 500 Internal Server Error Error:所请求
      的服务器遇到意外情况并阻止其执行 501 Not Implemented Implemented:请求的方法不被服务器支持,因此无法被处理, 服务器必须支持的方法(即不会返回这个状态码)只有 GET 和 HEAD

    • 502 Bad Gateway Gateway:作为网关或代理角色的服务器,从上游服务器(如 tomcattomcat)中接收到的
      响应是无效

    • 503 Service Unavailable Unavailable:服务器尚未处于可以接受请求的状态, 通常造成这种情况的原因是由于服务器停机维护或者已超载

    相关文章

      网友评论

          本文标题:网络协议-HTTP

          本文链接:https://www.haomeiwen.com/subject/yjadjltx.html