首页 > 代码库 > 服务器 4

服务器 4

复习:

基于单表的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)编写SQL:jd.sql,数据库名jd,表名udisk(uid, pic, uname, price, addedTime ),添加四条测试记录     <5min

(2)编写PHP:udisk_add.php,接收客户端提交的pic, uname, price,添加到数据库    提示: PHP函数time()返回系统时间    

(3)编写HTML:udisk_add.html,提供一个表单,实现U盘添加

(4)编写PHP:udisk_select.php,在DIV列表中显示出所有的U盘

(5)编写PHP:udisk_delete.php,接收客户端提交的uid,实现记录删除

(6)修改PHP:udisk_select.php,每个U盘右上角添加删除标记,点击后提交给udisk_delete.php,实现删除

 

 

今日目标:

(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个字节

表达的语义

表客户端想获取

表客户端想传递

 

 

实现了国际化的网页:  internationalization  I18N

 

 

今日重点:

       (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)接收响应

    尽可能减小响应数据长度——启用压缩

 

 

 

 

 

课下练习:

(1)百度:如何用PHP接收客户端上传的文件。

(2)实现完整的“用户管理系统”

主要功能:

(1)新用户注册

(2)用户登录

(3)浏览所有用户

(4)用户删除

 

实现步骤:

(1)编写SQL:jd.sql,表jd_user( uid, uname, upwd, headPic, regTime, loginCount )

(2)编写PHP:user_add.php,接收客户端提交的uname, upwd, headPic,把新用户信息添加到数据库,新用户的注册时间就是服务器当前系统时间,登录次数默认为0

(3)编写HTML: user_add.html,提供注册表单,辅助用户提交注册信息,提交给服务器端PHP页面实现用户注册

(4)编写PHP:user_login.php,接收客户端提交的uname和upwd,验证用户名和密码是否正确,若正确,则修改登录次数实现+1,向客户端返回“登录成功”;否则向客户端返回“用户名或密码错误”

       SELECT * FROM jd_user WHERE uname=‘?‘ AND upwd=‘?‘

       UPDATE jd_user SET loginCount=loginCount+1 WHERE uid=?

(5)编写HTML:user_login.html, 提供登录表单,辅助用户提交登录信息,提交给服务器端PHP页面实现用户登录

(6)编写PHP:user_select.php,在TABLE中列出所有的用户信息

(7)编写PHP:user_delete.php,接收客户端提交的uid,从数据库中删除指定的用户

(8)修改PHP:user_select.php,在TABLE中添加“操作”列,为每个用户添加一个“删除”按钮,点击后实现用户删除

 

服务器 4