[3]-web安全入门

一、Web App

1.Web App

  1. 概念
    运行在网络和标准浏览器上,基于网页技术开发实现特定功能的应用
  2. 涉及到的技术栈
    • 前端:HTML、CSS、JavaScript
    • 后端:Java、Python、PHP等等
    • 数据库:MySQL、Oracle、MongoDB等等
    • 容器:Apache、Nginx、ISS等等
    • 协议:TCP、DNS、HTTP、HTTPS等等

2.访问过程

  1. 用户直观感受
    url------>网页
  2. 底层原理
    • 输入url,DNS解析,得到目的服务器IP地址
    • 访问目的IP,利用TCP/IP协议建立TCP链接
    • 向web服务器发送HTTP请求报文,请求服务器资源
    • 收到请求报文,返回响应报文
    • 客户机收到解析后的HTML静态文档
    • 断开连接
  3. 响应内容处理-----几种不同情况
    • HTML文档:web服务器去对应目录,打开,发送
    • PHP文件:web服务器需经过PHP服务器解析为静态HTML代码后,再将静态代码发送
    • 数据库资源:web服务器----通过----PHP服务器----访问----数据库

3.常见web服务器

  1. Apache:
    开源可免费使用
  2. Nginx
    反向代理、负载均衡、HTTP缓存,内存少、稳定性高
  3. ISS
    Windows
  4. Lighttpd
    内存低、轻量
  5. Tomcat
    免费、性能稳定

4.用python实现简单的web服务器

  1. 课程样例

    
    

二、Web框架

1.框架简介

  1. 概念
    开发框架
    类型分为基于请求和基于组件两种框架
  2. 优点
    避免重复造轮子

2.常见框架

  1. 前端:jQuery、Bootstrap、React.js、Vue
  2. 后端:SpringMVC、Django、Flask、Tornado

3.使用Django从零搭建网站

  1. Django简介

    • 开源web应用框架
    • MVC模式:模型、视图、模板(Template)
    • 最早为CMS(内容管理系统)软件
  2. Django安装
    使用pip命令安装

    python -m pip install django
    

    image-20230115101514198

  3. 创建Django项目

    django-admin startproject mysite
    

    image-20230115102749873

  4. Django目录详解
    进入mysite项目,使用tree /f以显示整个文件树

    E:\Code\Django\mysite>tree /f
    

    image-20230115103053612

    • manage.py:django用于管理本项目的工具
    • asgi.py:异步服务器网关接口,3.0后才有,参考博客
    • settings.py:项目配置文件,引用的组件、项目名、数据库配置等,以及静态文件访问地址和存储路径
    • urls.py:访问网址到执行代码的映射关系
    • wsgi.py:服务器网关接口,服务器部署提供接口API
    • __init__.py:包初始化模块
  5. Django运行
    使用Ctrl+C结束运行,使用如下命令运行Django

    python manage.py runserver 0.0.0.0:8080
    

    image-20230115104604848

    命令
    image-20230115104704313

  6. Django应用创建
    创建firstapp

    django-admin startapp firstapp
    

    image-20230115111536026

  7. 修改配置文件
    配置文件:settings.py修改

    • INSTALLEN_APP:添加firstapp使配置文件能索引到firstapp应用
    • TEMPLATES:使该文件能索引到后面即将要加入的前端页面文件
    • ALLOWEN_HOST:使其能被外界IP访问

    配置截图:记得在该文件下import os
    image-20230115114519021

  8. 添加执行层代码以及映射关系
    修改firstapp/views.py,定义第一个函数fitsthtml,该函数作用是直接渲染并返回index.html
    image-20230115113344076
    修改urls.py,使其能将用户访问地址连接到需要执行的代码
    image-20230115113818050
    创建templates文件夹,用于存放index.html,然后创建index.html,并在该文件中写入相关代码,本文测试写入helloworld
    image-20230115114231957

  9. 运行服务器,测试效果

    注意:如有报错认真分析报错信息,大部分原因为单词写错了~
    image-20230115115431489

  10. 初始化数据库,创建超管账号

    python manage.py makemigrations
    python manage.py migrate
    python manage.py createsuperuser
    

    image-20230115151100540

  11. 重新启动服务器,访问管理后台,并利用创建超管账号登录

    python manage.py runserver 0.0.0.0:8080
    

    登录成功

    image-20230115151339662
    后台记录
    image-20230115151500178

  12. 部分操作解释
    创建数据库时,先makemigrationsmigrate最后再创建superuser,详解见博客博客
    总之,makemigrations是将数据库操作以文件形式记录,migrate时执行实际操作

  13. 拓展,本人很久前还有一篇文章,关于Django的,详见博客园

  14. 总结
    本节主要是带领我们熟悉Django各个文件作用,大致了解Django搭建网站过程,通过实践有助于我们进一步搭建一个整体性知识框架。通过本节课程,我对从前端到后端大致有了个模糊的认知。

posted @ 2023-01-18 14:15  缪白(Miubai)  阅读(68)  评论(0)    收藏  举报