HTTP

111 阅读5分钟

概述

  • HyperText Transfer Protocol超文本传输协议,工作在应用层,制定了网页(超文本)数据传输标准。

  • 底层依赖传输层TCP/80端口实现数据传输。

  • 软件架构:

    • C/S(client/server):客户端/服务器,用户需要下载安装特定客户端程序,才能使用软件资源;
    • B/S(browser/server):浏览器/服务器,用户只需要使用统一的浏览器就可使用软件资源;
  • 常见的web服务器程序软件:

    • Apache Tomcat
    • Apache
    • JBOSS
    • Nignx
    • 微软IIS
  • 常见的web资源:

    • 网页资源:HTML、JSP、PHP、ASP等
    • 样式资源:CSS、SCSS等
    • 交互效果资源:JS(JavaScript)
    • 图片资源:jpg、png、jpeg、gif等
  • 常见数据库

    • Oracle
    • MySQL
    • SQL server
    • Redis
  • 集成环境

    • XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。
    • PHPStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。

image-20240312154124782

URL

  • 统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法,俗称网址。

  • 格式:协议://主机名:端口号/资源路径?附加信息

    • http://192.168.126.133:80/dashboard/index.html
    • www.baidu.com:443/index.php
    • 协议:标准指定,一般为http或https;
    • 主机名:定位目标服务器主机,一般使用域名或IP;
    • 端口号:定位目标服务程序,一般http协议默认端口为80,https协议默认端口为443;
    • 资源路径:定位具体访问资源位置,一般参照服务器软件指定文件夹的相对路径;
    • 附加信息:可选内容,一般为发送给服务器的数据;

web服务器环境搭建

准备环境资源

  • xampp安装包
  • web网址资源:xindai(前端和后端资源)、xindai.sql(数据库资源)

安装xampp

  • 一路next,无特别操作

image-20240312160510151

image-20240312161207421

准备web资源

  • 将web资源解压

image-20240312160658107

  • 将web资源复制到xampp下的htdocs文件夹中,

image-20240312163342672

  • 启动Apache服务器和MySQL数据库软件

image-20240312173844770

  • 输入URL访问web项目资源http://服务器IP:80/xindai/

image-20240312163515252

  • 修改web资源中程序访问数据的密码

image-20240312163902145

  • 客户端重新访问web网页

image-20240312164007703

创建web项目数据库

  • 以root账户身份登录mysql
  1. mysql -uroot

image-20240312164715370

  • 创建web项目数据库
  1. create database 数据库名称;
  2. create database xindai;
  • 查看数据库
  1. show databases;

image.png

  • 进入web项目数据库;
  1. use 数据库名称;
  2. use xindai;

image.png

  • 导入web项目数据;
  1. source 数据库文件路径;
  2. source C:\Users\Administrator\Desktop\xindai.sql;
  • 查询web项目表数据;
  1. show tables;

image.png

  • 客户端重新访问服务器资源,访问成功

image-20240312170239633

请求与响应

image-20240313105545678

  • 请求是客户端发送给服务器的数据包,该数据包发送的目的是为了向服务器获取web相关资源;
  • 响应是服务器发送给客户端的数据包,该数据包会将客户端请求数据包的响应结果发送给客户端;
  • HTTP协议制定了请求与响应数据包标准,一个请求数据包只能请求服务器的一个资源;

请求类型

  • GET:向服务器索取资源的请求;
  • POST:向服务器提交数据的请求;

mine-type

  • minetype是一个用于标识文件内容类型的字符串,广泛应用于HTTP响应头、电子邮件、文件管理系统等场景。

image.png

请求(request)

概述

  • 请求数据包是客户端发送给服务器的数据包,该数据包携带了客户端要告诉给服务器的相关数据;

格式

  • 请求头(header)
    • 请求首行:请求类型 资源路径 HTTP版本
  1. GET /xindai/index.php HTTP/1.1
  • 键值对
  1. Accept:可以接收处理的资源类型
  2. Accept-Encoding:可以接收处理的编码格式
  3. Accept-Language:可以接收处理的语言
  4. Cache-Control(Pragma):缓存控制
  5. Connection:连接方式,keep-alive表示保持活连接(长连接)
  6. Cookie:存储到客户端的数据
  7. Host:目标服务器主机
  8. Upgrade-Insecure-Requests: 是否可以升级不安全请求,将不安全请求(HTTP)升级为安全请求(HTTPS)
  9. User-Agent:用户代理信息,包含客户端环境信息

image.png

请求正文(body)

  • GET请求没有请求正文,POST请求正文是提交到服务器的数据;
  1. {"tel":"13522226666","password":"1111111","captcha":"2752","loginType":1}

响应状态码

image.png

常见响应状态码

  • 200:响应成功
  • 301:永久性重定向,表示该资源已经使用新的资源路径,以后使用新的路径进行访问;
  • 302:临时性重定向,表示该资源已经使用新的资源路径,希望本次请求使用新的路径进行访问;

image-20240313122106219

  • 400:请求报文中存在语法错误(Bad Request)
  • 401:当前请求需要用户验证(鉴权不通过)。
  • 403:服务器拒绝。
  • 404:资源找不到。
  • 500:服务器错误,服务器执行请求时发生了错误。

响应(response)

概述

  • 服务器发送给客户端的数据包,该数据包携带了服务器要告诉给客户端的相关数据;

格式

响应头(header)

  • 响应首行:HTTP版本 响应状态
  1. Date: 响应时间
  2. Server: 服务器环境信息
  3. X-Powered-By:使用的技术框架
  4. Expires:响应资源被使用的过期时间
  5. Cache-Control(Pragma):缓存控制
  6. Keep-Alive:timeout=5, max=100,控制活连接关闭条件,timeout超时控制,单位为秒,max最大数据量
  7. Connection: Keep-Alive
  8. Transfer-Encoding:传输编码
  9. Content-Type:内容类型
  10. Content-Length:内容长度(内容大小)

响应正文(body)

  • GET请求响应正文一般为请求的资源内容;
  • POST请求响应正文一般为数据处理结果;
  1. {
  2. "code":401004,
  3. "msg":"该用户不存在,请先注册"
  4. }