HTTP协议之请求协议

Posted 时间就是金钱 我的朋友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议之请求协议相关的知识,希望对你有一定的参考价值。

一. 请求协议格式:

请求首行; //请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1
请求头信息; //请求头名称:请求头内容,即为key:value 格式,例如:Host:localhost
空行; //用来与请求体分隔开
请求体; //GET没有请求体,只有POST有请求体

二. GET请求

  1. HTTP默认请求方法为GET请求
    • 没有请求体
    • 数据必须在1K之内
    • GET数据会暴露在浏览器的地址栏中
  2. GET请求的常见操作
    1. 浏览器在地址栏中直接给出URL,那么一定是GET请求
    2. 点击页面上的超链接也一定是GET请求
    3. 提交表单时,表单默认使用GET请求,但可设置为POST请求
  3. 举例如下

    GET 127.0.0.1:8090/login  HTTP/1.1 <!--GET请求,请求服务器路径为  127.0.0.1:8090/login ,协议为1.1-->
    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    <!--当前客户端可以接收的文档类型 q为权重 越大会更倾向于前面-->
    Accept-Encoding:gzip, deflate, sdch <!--支持的压缩格式-->
    Accept-Language:zh-CN,zh;q=0.8 <!--当前客户端支持的语言-->
    Cache-Control:no-cache
    Connection:keep-alive <!--客户端支持的链接方式,保持一段时间链接,默认为3000ms-->
    Cookie:csrftoken=z5H43ZwARx7AIJ82OEizBOWbsAQA2LPk
    Host:127.0.0.1:8090  <!--请求的主机名为localhost-->
    Pragma:no-cache
    User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) 
    Chrome/53.0.2785.89 Safari/537.36   <!--与浏览器和OS相关的信息-->
    
    <!--以下为请求体-->
    Name
    login/
    requests?737B transferred?Finish: 5ms?DOMContentLoaded: 14ms?Load: 14ms

三. POST请求

  1. 常见操作
    1. 数据不会出现在地址栏中
    2. 数据上限没有大小
    3. 有请求体
    4. 请求体如果存在中文,会使用URL编码
  2. 举例如下

    Request Headers
    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Encoding:gzip, deflate
    Accept-Language:zh-CN,zh;q=0.8
    Cache-Control:no-cache
    Connection:keep-alive
    Content-Length:13   <!--请求体的长度,这里表示13个字节-->
    Content-Type:application/x-www-form-urlencoded <!--表单的数据类型-->
    Cookie:csrftoken=z5H43ZwARx7AIJ82OEizBOWbsAQA2LPk
    Host:127.0.0.1:8090
    Origin:http://127.0.0.1:8090
    Pragma:no-cache
    Referer:http://127.0.0.1:8090/login/ 
    <!--请求来自哪个页面,例如你在百度上点击链接到了这里,那么Referer:http://www.baidu.com;-->
    <!--如果你是在浏览器的地址栏中直接输入的地址,那么就没有Referer这个请求头了;-->
    Upgrade-Insecure-Requests:1
    User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) 
               AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36
    
    Form Data
    username:yuan
  3. Referer
    请求头是比较有用的一个请求头,它可以用来做统计工作,也可以用来做防盗链.

以上是关于HTTP协议之请求协议的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议之请求协议

HTTP协议原理与代码实践之大纲

HTTP协议基础知识

http协议之响应协议

转:HTTP协议之multipart/form-data请求分析

Python之HTTP协议