Http

http 请求#

分为请求部分和响应部分

1 - 请求部分#

1-1 请求头#

  • 请求的地址
  • 请求的方式
  • 版本及协议号

1-2 请求报文#

  • host
  • user_agent
  • accept
  • accept-encoding
  • content-length
  • if-modify-since
  • cookie
  • refer 此次请求来自己于哪个连接
  • keep-alive 长连接
  • connection

2 - 响应部分#

2-1 状态行#

  • 协议及版本号
  • 状态码
  • 状态码的描述信息

2-2 响应报文#

  • data
  • server
  • modified
  • content-type
  • content-encoding
  • content-length

3 - 状态码#

3-1 状态码的分类#
  1. 提示信息
  2. 成功
  3. 重定向
  4. 客户端错误
  5. 服务端错误

3-2 常见状态码及解释#

200 成功

206 部分或范围请求

301 在请求的连接被移除时使用

302 请求临时的链接使用

304 请求的资源无修改

307

400 告知客户端发送了错误请求

403 请求的资源无权限访问

404 请求的资源不存在

500 服务器遇到错误

502 代理或者网关错误

503 无法为请求提供服务

504 代理或者网关超时

4-HTTP 的特点#

  • 支持客户端、服务端模式
  • 简单便捷,请求方式和文件
  • 灵活 content-type
  • 无连接 服务器在处理完客户端的一次请求就会断开连接
  • 无状态

5 - 常见的请求方式#

  • get
  • post
  • put
  • delete
  • head 只从服务器获取文档的首部
  • option 决定在服务器上执行哪些方法
  • trace 对可能经过代理服务器传送到服务器上去的报文进行跟踪

6-get 和 post 的区别#

  1. post 更安全(不会作为 url 的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
  2. post 发送的数据更大(get 有 url 长度限制)
  3. post 能发送更多的数据类型(get 只能发送 ASCII 字符)

7-cookie#

7-1 为什么需要 cookie#

由于 http 是无连接、无状态的,所以对于客户端的信息无法保存,比如登录状态和购物车等

7-2 作用是什么#

服务器的数据保存在客户端。本质就是达到识别客户端。

7-3 cookie 的实现#

header 函数

<?php
header('set-cookie:name=zhangsan');

setcookie 函数

setcookie('name','zhangsan');

7-4 读取#

$_COOKIE 预定变量,用于保存客户端发送过来的 cookie 数据

var_dump($_COOKIE[‘name’]);

7-5 有效期#

Expire

位于客户端的 cookie 如果是会话级的 cookie,浏览器关闭之后自动删除

如果设置了有效期,让有效期过期就可以

setcookie(‘name’,’zhangsan’,time()-1)

7-6 跨域#

domain

将域设置成一样的就可以了

7-7 删除#

过期

关闭浏览器

7-8 cookie 的特性#

服务器的数据保存在客户端

1:保存在客户端就不安全

2:只能保存文本信息

3:默认是不能存储数据的,可以用 [],变相保存数据

8-session#

8-1 session 是什么#

session 是以 cookie 为基础,在服务器创建一个文本文件,将文本文件的文件名,以 cookie 形式保存在客户端。

8-2 如果 cookie 被客户端禁用,如何实现 session 机制#

  1. 设置:

此设置说明,不再仅使用 cookie 保存 session 信息 (session 文件名)

  1. 设置使用 a 链接保存 session 信息 (保存 session 文件名)

  2. 界面上应该具有 a 链接。

8-3 垃圾回收机制(GC)#

默认,客户端保存 session 文件名的那个 cookie 的有效期,是浏览器关闭。但当浏览器关闭后,为此客户端创建的 session 文件并不会马上被删除。此文件或过期的 session 文件,会被 php 的垃圾回收机制删除。

8-4 手动 session#

  1. 开启 session_start ();
  2. 向 session 中写数据
  3. 读取 session 中的数据
  4. 销毁 session

8-5 自动 session#

php.ini 中开启自动 session

8-6 特点#

写入时候序列化,读取反序列化

存在服务器端,相对安全

cookie 不能存数组,session 可以,session 本身就是一个关联数组

本作品采用《CC 协议》,转载必须注明作者和本文链接