一.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";
?>
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")