第一章--Go与web应用
Go语言构建web应用的特性
- 可扩展
- 可维护
- 模块化
- 高性能
HTTP简介
HTTP是一种无状态、由文本构成的请求-响应(request-response)协议,这种协议使用的是客户端-服务器(client-server)计算模型
CGI
通用网管接口(Common Gateway Interface),允许web服务器与一个独立运行于web服务器进程之外的进程对接
SSI
服务器端包含(server-side includes),允许开发者在HTML文件里包含一些指令,衍生出了JSP(Java Server Pages),ASP(Active Server Pages)等Web模板引擎
http请求
- 请求行(request-line)
- 零个或任意多个请求首部(header)
- 一个空行
- 可选的报文主体(body)
请求方法
- GET
- POST
- HEAD
- PUT
- DELETE
- TRACE
- OPTIONS
- CONNECT
- PATCH
http响应
- 一个状态行
- 零个或任意数量的响应首部
- 一个空行
- 一个可选的报文主体
响应状态码
- 1XX 情报状态码
- 2XX 成功状态码
- 3XX 重定向状态码
- 4XX 客户端错误状态码
- 5XX 服务器错误状态码
响应首部
- Allow
- Content-Length
- Content-Type
- Date
- Location
- Server
- Set-Cookie
- WWW-Authenticate
URI
统一资源标识符(Uniform Resource Identifier),在Tim Berners-Lee在1994年发表的RFC 1630中定义了这个概念,还包括统一资源名称(Uniform Resource Name)和统一资源定位符(Uniform Resource Location),URI是一个涵盖性术语,包含了URN和URL,URI一般格式为:
<方案名称>:<分层部分>[ ? <查询参数>] [ # <片段>]
因每个URL都是一个单独的字符串,所以URL里不能包含空格,?和#这些符号也不能做其它用途,我们需要用URL编码(百分号编码)对这些字符进行转换,做法是将该字符在ASCII码中的字节值转换为16进制,并在前面加上%,例如空格就被转换为%20。
处理器
Web应用中的处理器出了要接收和处理客户端发来的请求,还需要调用模板引擎,然后由模板引擎生成HTML并把数据填充至将要回传给客户端的响应报文中
模板引擎(template engine)
- 静态模板
- 动态模板
Hello Go
本地运行hello, world!
package main
import (
"fmt"
"net/http"
)
func handler(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "Hello World %s", request.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
第一章--Go与web应用的更多相关文章
- 第一章 Django之web框架(1)
Django 是新一代 Web 框架 中非常出色的成员.那么 Web 框架这个术语的确切含义到底是 什么呢? 要回答这个问题,让我们来看看通过编写标准的 CGI 程序来开发 Web 应用,这在大约19 ...
- 网络安全从入门到精通(第一章-1)Web服务器通信原理
本文内容 IP地址 域名 端口 HTTP协议 从访客角度看网页浏览器流程 常见服务器系统 路径 Web容器 常见的Web容器 !!!多动手,多动手,只看只听是不行的!!! 1,IP地址:就是计算机在互 ...
- 第一章:深入web请求过程
初学者,总结一下读书笔记,望海涵. 1.1 B/S网络架构概述 相比于C/S架构,B/S网络架构(Browser/Server)从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,采用 ...
- Go Web 编程 第一章 Web相关概念
第一章 Go与Web应用 Go学习群:415660935 1.1 Web应用 在计算机的世界里,应用(application)是一个与用户进行交互,并完成用户特定任务的软件程序.而Web应用则是部署在 ...
- web学习第一章
web学习第一章 我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻 ...
- 精通Web Analytics 2.0 (3) 第一章:网站分析的新奇世界
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第一章:Web Analytics 2.0的新奇世界 多年以来,我们很清楚的知道,网站分析能够真正的改革网络上业务的完成方式.那 ...
- 第一章 创建WEB项目
第一章 创建WEB项目 一.Eclipse创建WEB项目 方法/步骤1 首先,你要先打开Eclipse软件,打开后在工具栏依次点击[File]>>>[New]>>&g ...
- web前端学习python之第一章_基础语法(二)
web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...
- web前端学习python之第一章_基础语法(一)
web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...
随机推荐
- 【codeforces】【比赛题解】#851 CF Round #432 (Div.2)
cf真的难…… 点我浏览丧题. [A]Arpa和她对墨西哥人浪的研究 Arpa正在对墨西哥人浪进行研究. 有n个人站成一排,从1到n编号,他们从时刻0开始墨西哥人浪. 在时刻1,第一个人站起来.在时刻 ...
- MinGw 和 cygwin 的区别和联系
原创 by zoe.zhang .......................................................... 1. windows与Linux操作系统的不同 ...
- Android调试大法 自定义IDE默认签名文件==>微信支付、微信登录、微信分享,debug时调试通过,release时调不起微信
转载地址:http://blog.yanzhenjie.com Android调试大法之自定义IDE默认签名文件,你是否为调试第三方SDK时debug签名和release签名发生冲突而烦恼?你是否在d ...
- mac 删除垃圾篓中的文件
1.打开终端输入: sudo rm -rf /Volumes/kaid/.Trashes/ 2.输入本机密码
- 【前端vue开发】Hbuilder配置Avalon、AngularJS、Vue指令提示
偶尔也会研究一下前端内容,因为Hbuilder是基于eclipse开发的,所以用起来倍感亲切啊,而且在我尝试使用的几款前端开发工具中,Hbuilder的表现也是相当出色地,可以访问Huilder官网下 ...
- github后端开发面试题大集合(三)
作者:小海胆链接:https://www.nowcoder.com/discuss/3616来源:牛客网 13.软件架构相关问题: 什么情况下缓存是没用的,甚至是危险的? 为什么事件驱动的架构能提高可 ...
- Python爬虫之HDU提交数据
前一篇http://www.cnblogs.com/liyinggang/p/6094338.html 使用了爬虫爬取hdu 的代码,今天实现了将数据向hdu 提交的功能,接下来就是需要将两个功能合并 ...
- Linux基础入门学习笔记之四
环境变量与文件查找 环境变量 变量 所谓shell变量,就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中.通常变量与值是一对一的关系,可以通过表 ...
- cve-2010-3333 Microsoft Office Open XML文件格式转换器栈缓冲区溢出漏洞 分析
用的是泉哥的POC来调的这个漏洞 0x0 漏洞调试 Microsoft Office Open XML文件格式转换器栈缓冲区溢出漏洞 Microsoft Office 是微软发布的非常流行的办公 ...
- js中的Object.seal()与Object.freeze()
关键字:seal, freeze, property descriptor. 1.Object.seal() 参考文档(2)中这样描述: The Object.seal() method seals ...