一、HTTP协议特点:

  • 简单快速,请求方式有get、post、head 等8种
  • 无连接无状态
  • 支持模式有 B/S(浏览器) C/S(通过websocket去通信)

  URL,统一资源定位符,在网络中用来标识某处的资源

  1. http(协议)://www.baidu.com(域名):8080(端口)/news(虚拟目录)/index.php(文件名部分)?parameter=deal&id=35&do=add(三个参数,?开始,用&连接)#name(锚部分)

二、请求包(request)

  1、请求包:request=请求行+请求头+空行+请求数据

  2、请求方式:

    http1.0: GET POST HEAD
    http1.1:GET POST HEAD OPTIONS PUT DELETE TRACK CONNECT

  3、请求包中每个请求头中参数的含义

  1.     POST /null HTTP/1.1 请求行(请求方式+url+协议及版本)
  2.     Host: 192.168.211.3 表示请求的服务器的IP
  3.     User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 表示用户本地环境
  4.     Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5.     Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 浏览器可解析的语言类型
  6.     Accept-Encoding: gzip, deflate 浏览器可解析的编码方式
  7.     Referer: http://192.168.211.3/a70m 表示请求页面是从哪来
  8.     Cookie: program=test; vlan=0; ip=10.3.139.133 表示服务器和浏览器之间的会话状态,该会话状态可以表示用户是否登录过,一般都是服务器给的配置,具有时效性。只要失效,就需要用户重新登录,只有登录成功之后,浏览器会保存cookie,每次去服务器请求都会带上cookie,并且该cookie是需要在服务器中去验证。
  9.     X-forwarded-for:127.0.0.1 表示用户的真实的IP
  10.     DNT: 1
  11.     Connection: close 连接状态
  12.     Upgrade-Insecure-Requests: 1
  13.     Content-Type: application/x-www-form-urlencoded 内容类型,表示该请求数据的类型
  14.     Content-Length: 139  请求包长度
  15.                    空行
  16.     DDDDD=&upass=&R1=0&R2=0&R3=0&R6=0&para=00&0MKKey=123456&buttonClicked=4&redirect_url=&err_flag=&username=123&password=456&user=&cmd=&Login= 请求数据(GET没有,POST有)

  4、相同点:

  • 都可以创建数组,array,其包含了键值对(key=value),其中的键是表单控件的名称,值是用户输入的数据;
  • GET和POST视为$_GET和$_POST,是超全局变量。

  5、不同点:

  • GET型方式将用户发送的数据拼接到URL中,发送的数据量较小,不安全;
  • POST型方式参数放在请求包中的请求数据中,必须使用工具查看,发送的数据量较大,安全性较高。

三、响应包(response)

  1、用户发送的请求包达到服务器之后,要处理该请求,把处理之后的结果发送给用户的浏览器,我们将该结果称为响应头。

  2、Response=状态行+相应报头+空行+响应正文

  3、如何用BP拦截响应包

    先去设置浏览器中代理,在去设置BP中的代理监听器,同时要注意勾选“Intercept responsers based on the following:”,在拦截到数据包后,点击“Forward”,就能看到相应包。

  

  4、状态码,是由三位数字组成,第一位数字表示了相应的类型,共有五种类型:

    1XX:表示服务器已经接收到请求,并且需要继续处理数据
    3XX:表示服务器已经成功接收到请求,并处理了该请求
    3XX:表示重定向,URL要跳转到其他页面去
    4XX:表示用户请求有问题
    5XX:表示服务器内部出错
  常见状态码:200 302 304 400 403 404 500
    200 OK:请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。
    302 Found:临时移动,服务器目前从不同的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    304 Not Modified:未修改,所请求的资源未修改,服务器返回此状态码时,不会返回任何资源,客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。
    400 Bad Request:客户端请求的语法错误,服务器无法理解。
    403 Forbidden:服务器理解请求客户端的请求,但是拒绝执行此请求。
    404 Not Found:服务器无法根据客户端的请求找到资源(网页)。通过此码,网站设计人员可设置“您所请求的资源无法找到 ”的个性界面。
    500 Internal Server Error:服务器内部错误,无法完成请求。

  5、响应头中每个参数的含义

  1. HTTP/1.1 OK 状态行(协议以及版本+状态码)
  2. Date: Mon, Sep :: GMT 服务器响应时间
  3. Server: Apache/2.4. (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a 服务器环境
  4. Last-Modified: Mon, Sep :: GMT
  5. ETag: "116-5932e8c9787e8"
  6. Accept-Ranges: bytes
  7. Content-Length: 返回数据包长度
  8. Connection: close 连接状态
  9. Content-Type: text/html 返回响应数据的类型,告诉浏览器该使用哪种方式去解析或者打开该响应数据类型
  10. Location:index.php 表示要跳转的哪的页面
  11. Set-cookie: 表示服务器给浏览器设置的cookie的值
  12.             空行
  13. <!DOCTYPE html> 以下是响应正文
  14. <html>
  15. <head>
  16. <title></title>
  17. <meta charset="utf-8">
  18. </head>
  19. <body>
  20. <form>
  21. <label>用户名</label>
  22. <input type="name" name="name">
  23. <input type="passwd" name="passwd">
  24. <input type="submit" name="submit" value="submit">
  25. </form>
  26. </body>
  27. </html>

笔记:HTTP协议基础的更多相关文章

  1. TCP/IP学习笔记12-- IP协议基础

    IP(internet protocol, 网际协议) IP相当于OSI参考模型中的第三层 -- 网络层. --网络层的下一层--数据链路层的主要作用是在 同一种数据链路 的节点之间进行包传递,而一旦 ...

  2. Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口、MAC地址、子网地址、协议)

    >Huawei-R&S-网络工程师实验笔记20190608-VLAN划分基础(基于端口.MAC地址.子网地址.协议) >>实验开始,先上拓扑图参考: 一.基于端口划分VLAN ...

  3. Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...

  4. 【笔记】Django基础(一)

    ---恢复内容开始--- [笔记]Django基础(一) oldboy Django  一 关于Python框架的本质 1. HTTP协议消息的格式: 请求(request) 请求方法 路径 HTTP ...

  5. 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...

  6. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  7. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  8. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  9. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  10. 小白日记27:kali渗透测试之Web渗透-Http协议基础,WEB

    Http协议基础 Web技术发展[http://www.cnblogs.com/ProgrammerGE/articles/1824657.html] 静态WEB[网页] 动态WEB 属于一种应用程序 ...

随机推荐

  1. HTTP的实体数据

      数据类型表示实体数据的内容是什么,使用的是MIME    type,相关的头字段是Accept和Content-Type:  text:即文本格式的可读数据,我们最熟悉的应该就是text/html ...

  2. JAVA基础(jdk安装和环境变量的配置)

    JAVA 1.何为JAVA Java的发展可以归纳如下的几个阶段. (1)第一阶段(完善期):JDK 1.0 ( 1995年推出)一JDK 1.2 (1998年推出,Java更名为Java 2): ( ...

  3. windows 下安装YApi及集成Idea的YapiUpload

    一准备工具 Mongodb Node和npm 二文档地址 https://hellosean1025.github.io/yapi/ 三安装步骤 1.安装Mongodb,请参考 2.安装Node,请参 ...

  4. 老男孩Django笔记(非原创)

    .WEB框架 MVC Model View Controller 数据库 模板文件 业务处理 MTV Model Template View 数据库 模板文件 业务处理 ############## ...

  5. PHP jdtojewish() 函数

    ------------恢复内容开始------------ 实例 把儒略日计数转换为犹太历法的日期: <?php$jd=jdtojewish(1789430); echo $jd;?> ...

  6. PHP curl_share_close函数

    (PHP 5 >= 5.5.0) curl_share_close — 关闭 cURL 共享句柄 说明 void curl_share_close ( resource $sh ) 关闭 cUR ...

  7. PHP mt_rand() 函数

    实例 生成随机数: <?phpecho(mt_rand() . "<br>");echo(mt_rand() . "<br>"); ...

  8. SpringMVC文件上传下载(单文件、多文件)

    前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...

  9. P5468 [NOI2019]回家路线 斜率优化 dp

    LINK:回家路线 (文化课 oi 双爆炸 对 没学上的就是我.(我错了不该这么丧的. 不过还能苟住一段时间.当然是去打NOI了 这道题去年同步赛的时候做过.不过这里再次提醒自己要认真仔细的看题目 不 ...

  10. 4.23 子串 AC自动机 概率期望 高斯消元

    考虑40分. 设出状态 f[i]表示匹配到了i位还有多少期望长度能停止.可以发现这个状态有环 需要高斯消元. 提供一种比较简单的方法:由于期望的线性可加性 可以设状态f[i]表示由匹配到i到匹配到i+ ...