cgi的应用

image

在处理一个页面请求时咱们通常会须要用到一下信息:javascript

  1. 请求头, 请求头里边包含了不少的信息如COOKIE、URI等. 能够协助咱们处理请求
  2. 提交的参数, 用户经过GET/POST请求提交上来的参数.
  3. 根据1-2的输入, 进行自定义的处理过程
  4. 输出html页面, 或json数据(API接口)

如何获取请求头的信息css

import os


# 这是返回给客户端的请求头
print("Content-type: text/html\n\n")
print(os.environ)

在输出界面咱们就能够看到咱们所提交过去的各类信息.html

GET/POST的请求参数, GET的请求参数咱们能够经过os.environ里的QUERY_STRING看到. 而事实上咱们还能够经过CGI模块来获取java

import cgi


# 建立 FieldStorage 的实例化
form = cgi.FieldStorage()
username = form.getvalue('username', default=None)
password = form.getvalue('password', default=None)

print("Content-type: text/html\n\n")
print("Your username is %s, password is %s"% (username, password))

不管是经过GET仍是POST提交的参数, 均可以经过getvalue获取.python

cgi是经过stdin, stdout来传递数据的.要让可执行文件的输出不止于helloworld, 那么就须要把特定的信息输出到stdout从而输出至客户端. 对于REST风格的API而言, 能够使用json.dumps来生成返回数据. 而若是是做为网页形式, 须要返回整个html, 那么咱们将须要输出html的dom、css、javascript, 要咱们一行一行把这些东西给输出到stdout是很是麻烦的. 这时咱们就能够经过模板语言来构建html.json

由于CGI会直接启动一个进程来执行脚本, 那么咱们就须要注意一个安全性的问题. 执行脚本的用户应该尽可能少拥有无关的权限. 以防被恶意用户利用.安全

相关文章
相关标签/搜索