HTTP协议:请求(request)AND响应(response)AND(cache)缓存

一.WHAT

HTTP(HyperText Transport Protocol)是超文本传输协议的缩写,

规范数据如何打包

二.

Message:消息/报文,在http客户端和服务器之间传输的数据块

请求消息(request)

客户端带给服务器的数据都有哪些,有三个部分组成

    1.请求的起始行

          请求方法:

                   1.GET    表示客户端想服务器获取资源时使用(无请求主题,靠地址栏传递查询字符串)

                   2.POST 表示想传递数据给服务器时使用(有请求主体,不靠地址栏传递,见下图)       

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="demo01.php" method="post">
    <p>用户名:
        <input type="text" name="uname">
    </p>
    <p>密码:
        <input type="password" name="upwd">
    </p>
    <p>
        <input type="submit" value="提交">
    </p>
</form>
</body>
</html>
<?php
/**
 * Created by PhpStorm.
 * User: Bohn
 * Date: 2018/8/18
 * Time: 16:39
 */
$uame=$_REQUEST["uname"];
$upwd=$_REQUEST["upwd"];
echo "欢迎$uame";
?>
访问 http://127.0.0.1/phpstorm/demo01(csdn)/demo01.php

                                   

                3.PUT(客户端想防止文件到服务器)(禁用)

                4.DELETE(客户端删除服务器短的数据)(禁用)

                5.HEAD(表示客户端指向获取指定的响应头)

                6.CONNECT(测试连接)

                7.TRACE(追踪请求路径)

                8.OPTIONS(选项,保留备用)

         请求的URL

          协议版本:HTTP/1.1

        

      2.请求头

            1.Host:localhost=127.0.0.1

                      告诉浏览器请求哪个主机

             2.Connection:keep-alive

                   告诉服务器要进行持久连接

             3.User-Agent

                      告诉服务器自己的浏览器的类型

             4.Accept-Language:zh-cn

                     告诉服务器自己可以接纳的自然语言

               5.Accept-Encoding:gzip

                    告诉服务器自己能接收的数据的压缩类型是什么

              6.Referer:http://127.0.0.1/phpstorm/demo01(csdn)/demo01.html  

                     告诉服务器请求来自哪个页面

          

      3.请求主体

            From Date

响应(response)消息

      1.响应的起始行

            1.协议版本号:HTTP/1.1

             2.响应状态码

                作用:告诉浏览器,服务器的响应状态是什么问题(有问题,没问题,有问题/问题大概是什么)

               1XX:100-199提示信息

               2XX:成功响应

                     200:ok

                3XX:需要重定向

                    301:永久性重定向

                    302:临时重定向

                    304:Not Modified

                4XX:客户端请求错误

                      404:Not Found 请求资源不存在

                       403:Forbidden 权限不够

                       405:Method Not Allowed 请求方法不被允许

                 5XX:服务器运行错误

                      500:服务器内部错误

               3.原因短句

                    对状态码的简单理解

       2.响应头

             1.Date

                    告诉浏览器,服务器的响应时间

                              格林尼治时间(北京+8h)

              2.Connection     

                    告诉浏览器已经启动持久连接

              3.Content-Type

                      作用:响应主题的类型是什么,告诉浏览器,用什么样的方式解析响应主体

                      1.text/html:响应回来的数据是html 

                       2.text/plain:响应回来的数据是普通文本css样式

                       3.text/Css:响应回来的数据是普通文本css样式

                       4.application/xml:响应回来的数据是xml格式

                       5.application/JavaScript:响应回来的数据是js脚本代码

                       6.application/json:响应回来的数据是json格式的字符串

                       7.images/Jepg:响应回来的数据是图片

            3.响应主体

                 Response

缓存

    1.WHAT

          客户端将服务器响应回的数据机型自动保存,当再次访问时可直接使用保存的数据

     2,.优点

          减少了冗余数据的传输,节省了客户端流量

          可以节省服务器带宽

          降低了对服务器资源的消耗和运行要求

     3.降低了对服务器资源的消耗和运行要求

     4.降低了由于远距离而造成的的延时加载

    3.与缓存相关的消息头

        1.Cache-Control消息头

                 从服务器将文档传到客户端时起,,可以认为此文档处于新鲜的秒数

             语法:

                     Cache-Control:max-age=处于新鲜的秒数

               ex:

                    Cache-Control: max-age=3600;一小时

                     Cache-Control:max-age=0;每次都从服务器下载新资源

         2.Expires消息头

                 作用:指定缓存过期的确切时间(格林尼治时间)

                 语法:Expires:Thu,22 Nov 2018    GMT

                如果希望客户端不缓存,可以给一个过期的时间

                 Expires: Wed,22 Nov 2018 GMT

                  Expires:0//  此方法不标准,执行性不好

      4.在网页上设置消息头

              1.更改服务器配置

               2.网页上增加消息

                   <meta http-equiv="消息头" content="值" >

               ex:<meta http-equiv="Cache-Control" contnet="max-age=3600">

                  或

                   <meta http-equiv="Expires" content="0">

               php:

                    header("Expries:0");

                   Response.AddHeader("Expires","0")

           

          

         

               

猜你喜欢

转载自blog.csdn.net/qq_39458856/article/details/81810144