zoukankan      html  css  js  c++  java
  • 请求消息详解(请求头、get、post、请求体)

    简述

      我们在servlet的service方法中有两个参数,分别是ServletRequest和ServletResponse,如果想掌握这两个参数,我们必须对请求消息和相应消息有个深入的理解。

    请求消息

      请求消息本质上就是客户端告诉服务器的一些信息。

      请求消息由请求行、请求头、请求空行、请求体组成。

      像这样就是一个完整的请求消息

    POST /login.html    HTTP/1.1
    Host: localhost
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: http://localhost/login.html
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1

    请求行

      请求方式 请求url 请求协议/版本
      例:   GET /login.html HTTP/1.1

      * 请求方式:
      * HTTP协议有7中请求方式,常用的有2种
      * GET:
      1. 请求参数在请求行中,在url后。
      2. 请求的url长度有限制的
      3. 不太安全
      * POST:
      1. 请求参数在请求体中
      2. 请求的url长度没有限制的
      3. 相对安全

      如果面试问你,get请求和post请求有什么区别,那么请看超人:https://www.cnblogs.com/logsharing/p/8448446.html

    请求头

      格式:请求头名称: 请求头值

      例: Host: localhost

      注意值有多个的情况下值用逗号隔开

      例如这样就是一个整个的请求头

    Host: localhost
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Referer: http://localhost/login.html
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1

      常见的请求头:

      1.User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息,可以在服务器端获取该头的信息,解决浏览器的兼容性问题

      2.Accept: 我作为浏览器可以解析哪些文件

      3.Referer:http://localhost/login.html : 告诉服务器,我(当前请求)从哪里来?可以防盗链

        什么是盗链呢?意思是一些盗版网站用了别人网站的链接

      同时Referer头可以做一个来源统计的操作。

      4.Connection: 连接是否可以被复用

    请求空行

      请求空行就是一个空行,意思就是告诉服务器从下一行开始就没有请求头了

    请求体

      注意get请求是没有请求体的,只有post请求有请求体

      请求体是以键值对的方式传输的

      post的请求体就是以键值对

    一点一点积累,一点一点蜕变!
  • 相关阅读:
    表单上传,接收非文件参数
    CompletableFuture 获取所有task的结果
    CNVD-2021-30167:用友NC BeanShell远程代码执行漏洞复现
    restful接口优化
    中科院院士:初等数学和高等数学,总结起来就这几点<转载>
    Vue打包报错Unexpected token: punc(()解决方案
    Echarts表格三连的效果
    React 项目 或者 Vue项目 中引用 第三方插件的时候,如果不在npm库上,则需把静态文件放入项目进行引用
    ios touch事件 获取 event的 clientX/Y
    GCC | GCC编译器
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/14812236.html
Copyright © 2011-2022 走看看