openwrt--luci学习记录3 登录页面分析

 

 

以前做的笔记,没有上传,现发上来,供学习使用

Http 以及html相关知识的介绍

HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80),通常由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。

客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

以下是 HTTP 请求/响应的步骤:

 客户端连接到Web服务器

 发送HTTP请求

 服务器接受请求并返回HTTP响应

 释放连接TCP连接

客户端浏览器解析HTML内容

get  post  head  post  put  delete  trace  options  connect

URL

 

HTTP状态码

 

  • HTTP请求格式(请求协议)

 

 

 

https://www.runoob.com/html/html-intro.html

  1. HTML页面使用“<% %>”嵌入 LUA 代码,在HTML页面的开头会发现有一段“<% %>”的引用,那里包含着LUA的数据处理;
  2. 可以在HTML的任何地方,使用<%=xxx%>进行LUA数据的引用;
  3. HTML页面里的<%+header%>表示加载/usr/lib/lua/luci/view/header.htm;
  4. 使用<%:xxx%>,实现页面节点不同语言风格的切换
  5. cbi的跳转方式(跳转LUA页面):

local http = require 'luci.http'

local dsp = require 'luci.dispatcher'

http.redirect(dsp.build_url("/admin/system/wifitest"))

  1. template的跳转方式(跳转HTML页面):

local temp = require 'luci.template'

temp.render("sysauth")

 

服务器架构

main函数进行一些初始化(首先parse config-file,然后parse argv),然后进入一个循环,不断地监听,每当有一个客户请求到达时,则对它进行处理。

uh_cgi_request需要两个二外的参数pathinfo和interpreter,其中pin是一个struct,包含了路径中各种有用信息;ipr指明所用的cgi程序,因为一个服务器中可以有多个cgi程序。

    如图所示,docroot是服务器的资源目录,是为了os准确定位资源位置,由uhttpd的config文件设定,如openwrt中为/www。后面的是client传来的url,开头的为cgi-prefix,也是有uhttpd的config文件设定的,它指明serv端采用cgi处理方式,如openwrt中的为/www/cgi-bin;紧接着的是cgi的程序名,它指明了使用哪个cgi程序;再后面就是实际的path信息了,在cgi方式中,它会被当成参数供cgi程序使用

uhttp的配置文件 位于 /etc/config  目录下

uhttp 的启动脚本 位于  /etc/init.d中

…….

在系统的根目录/  下的www文件夹下

 

http请求的主页面,默认是/www/index.html,这个文件里显示了登录时常看见的那句话“LuCI - Lua Configuration Interface”,同时也指定了href链接/cgi-bin/luci

加载当前的目录的/cgi-bin/luci 这个脚本文件,脚本文件内容

run()函数作为CGI程序的启动入口

  

在上述run()函数中,创建了一个协同程序,调用httpdispatch()函数,而这个函数位于dispatcher.lua中。

对index的页面源码的解析,了解相应的html的语法,这个页面主要作用是超链接

文件位于\lua\luci\view\indexer

页面效果

对sysauth 页面进行解析,文件位于\lua\luci\view\sysauth

主要是将username和password按照表单的形式,进行提交。

其中需要对LuCI中的CBI模板进行学习。

对应的页面效果

 

通过网页进行截获信息

相应的后台处理函数为\lua\luci\dispatcher

dispatch 负责处理http中参数

 

上文中返回失败的返回

ps 中可以显示相应的进程

usr/sbin/uhttpd -f -h /www -r AOTUO -x /cgi-bin -u /ubus -t 60 -T 30 -k 20 -A 1 -n 3 -N 100 -R -p 0.0.0.0:80 -p [::]:80

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值