http 通信过程
客户端
- 对域名先查找本地hosts文件有没有对应ip,如果没有就去请求DNS服务器,
- 查找对应域名的ip地址,然后通过ip以及端口与服务端建立通道
- 收到服务器的’包’,根据content-type处理响应的内容,开始界面渲染。
Host: localhost:63343
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: Webstorm-91a8f251=010b5b92-7bda-48b2-a14f-b911fb6350c7; Phpstorm-9bd8916c=1d074b2f-cb88-475b-8ff1-1cc122018191
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
服务端:
- 根据客户端提交过来的’包’,获取请求路径
- 根据请求路径对应的文件扩展名找到文件的MIME TYPE
判断文件类型是否是静态文件 - 服务端把要发给客户端的数据打成’包’,通过连接通道发回给客户端
HTTP/1.1 200 OK
content-type: text/html
server: PhpStorm 2019.1.1
date: Thu, 6 Jun 2019 06:33:33 GMT
X-Frame-Options: SameOrigin
X-Content-Type-Options: nosniff
x-xss-protection: 1; mode=block
cache-control: private, must-revalidate
last-modified: Thu, 6 Jun 2019 03:30:21 GMT
content-length: 669
三次握手的目的是确保连接时可靠的
页面跳转
header('Location:index.html')
在响应头中添加一个Location的头信息,客户端接收到这个头信息会自动跳转到头信息的地址。不能循环重定向
json 数据的表述手段
字面量:是代码中表述数据的一种手段
json与js字面量的区别
- .json 属性要用""
- json 字符串要用""
- json 不能有注释
- json 没有undefined
把json数据转对象的过程称为反序列化
对象转关联数组
$arr = json_decode($content,true);
将数据序列化的时候,必须要UTF-8编码
json_encode();
doc+tab 快速在php页面生成html代码
多文件上传
<!-- multiple可以让一个文件域多选-->
<div class="form-group">
<label for="images">海报</label>
<input type="file" id="images" name="images[]" class="form-control" multiple>
</div>
var_dump($_FILES['images']);
校验文件逻辑
if (empty($_FILES['images'])) {
//客户端没提交音乐文件
$GLOBALS["error_msg"] = '请提交图片文件';
return;
}
$image = $_FILES['images'];
多文件长传
for ($i = 0; $i < count($image['name']); $i++) {
//校验是否上传成功
if ($image['error'