复习:
基于单表的CRUD操作:
$cid = $_REQUEST['cid'];
$conn = mysqli_connect();
$sql = "DDL/DML/DQL";
$result = mysqli_query($conn, $sql);
//DML: false / true
//DQL: false / 结果集描述对象
$row = mysqli_fetch_row($result)
$row = mysqli_fetch_assoc($result)
$list = mysqli_fetch_all($result, MYSQLI_ASSOC)
今日目标:
(1)HTTP协议详解 —— 重点
1.补充:PHP常用函数
require('x.php') 在当前位置包含指定文件中的内容
2.HTTP协议
超文本传输协议,用于规定客户端浏览器和Web服务器传输数据的格式。HTTP/1.1 - RFC2616
HTTP协议规定两种消息的格式:
(1)请求消息(request):客户端发给服务器的消息
(2)响应消息(response):服务器发给客户端的消息
面试题:常见的HTTP请求方法有哪些?各表示客户端的何种意图? GET/POST/PUT/DELETE/HEAD/CONNECT/TRACE/OPTIONS |
GET请求和POST请求的比较 | ||
| GET | POST |
如何发起 | 浏览器中输入URL回车、超链接跳转、JS跳转、SRC/HREF属性请求、GET方式提交表单、AJAX-GET | POST方式提交表单、AJAX-POST |
请求数据的位置 | 追加在URI后,作为查询字符串,以?开头 | 放在请求主体中 |
请求数据的类型 | 只能是文本字符 | 可以是任意类型,如包含图片、视频等 |
能否用于上传文件 | 否 | 能 |
请求数据长度限制 | 有,浏览器/服务器对请求URI长度有限制(如1KB、4KB等) | 请求主体没有长度限制! |
请求数据需编码? | 需要!一个UTF-8汉字编码为9个字节 | 需要!一个UTF-8汉字编码为9个字节 |
表达的语义 | 表客户端想获取 | 表客户端想传递 |
今日重点:
(1)请求消息中的请求方法——八种
(2)响应消息中的响应状态码——五类
(3)请求消息主体的内容类型 和 响应消息主体的内容类型 区别
3.如何精准的描述一段数据的内容类型
不要使用后缀名!!—— 太杂乱、不可靠
.html、.xhtml、.htm
.jpg、.jpeg
.mp3、.mpeg3
....
可以借鉴MIME中定义的文件类型名称:
text/html
text/css
application/javascript
...
MIME: (Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 |
4.如何修改响应消息的头部
(1)修改Web服务器的配置文件
比较复杂,有些情况下无法修改,如新浪云服务器
(2)若响应文件是HTML,则可以声明<meta http-equiv="响应头部">
仅适用于HTML文件,且只是“等价物”,并非真正的响应头部
(3)使用动态语言代码来控制响应消息头部
如PHP: //设置一个响应消息头部
header('Cache-Control: no-cache');
header('Content-Type: image/png');
5.面试题:根据HTTP协议的知识进行网站访问优化 有哪些方案?
(1)域名解析
尽可能减少域名解析次数——减少跨站外部资源的引用
(2)创建连接
努力减少连接创建次数——启用持久连接避免重复连接
(3)发送请求
尽力减少请求次数——合理设置缓存、资源合并
(4)等待响应
提高服务器端运行速度——提高数据运算及查询速度
(5)接收响应
尽可能减小响应数据长度——启用压缩
补充:HTTPS协议 —— 了解
1.安全的HTTP协议
HTTP: 80
HTTPS: 443 HTTP Secure、 HTTP over SSL