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应用的更多相关文章

  1. 第一章 Django之web框架(1)

    Django 是新一代 Web 框架 中非常出色的成员.那么 Web 框架这个术语的确切含义到底是 什么呢? 要回答这个问题,让我们来看看通过编写标准的 CGI 程序来开发 Web 应用,这在大约19 ...

  2. 网络安全从入门到精通(第一章-1)Web服务器通信原理

    本文内容 IP地址 域名 端口 HTTP协议 从访客角度看网页浏览器流程 常见服务器系统 路径 Web容器 常见的Web容器 !!!多动手,多动手,只看只听是不行的!!! 1,IP地址:就是计算机在互 ...

  3. 第一章:深入web请求过程

    初学者,总结一下读书笔记,望海涵. 1.1 B/S网络架构概述 相比于C/S架构,B/S网络架构(Browser/Server)从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,采用 ...

  4. Go Web 编程 第一章 Web相关概念

    第一章 Go与Web应用 Go学习群:415660935 1.1 Web应用 在计算机的世界里,应用(application)是一个与用户进行交互,并完成用户特定任务的软件程序.而Web应用则是部署在 ...

  5. web学习第一章

    web学习第一章   我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻 ...

  6. 精通Web Analytics 2.0 (3) 第一章:网站分析的新奇世界

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第一章:Web Analytics 2.0的新奇世界 多年以来,我们很清楚的知道,网站分析能够真正的改革网络上业务的完成方式.那 ...

  7. 第一章 创建WEB项目

    第一章   创建WEB项目 一.Eclipse创建WEB项目 方法/步骤1 首先,你要先打开Eclipse软件,打开后在工具栏依次点击[File]>>>[New]>>&g ...

  8. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  9. web前端学习python之第一章_基础语法(一)

    web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

随机推荐

  1. jQuery动态给下拉列表添加一个选项(创建DOM对象)

    使用的函数:

  2. gpio口、内核定时器使用

    /*申请gpio*/ int gpio_request(unsigned gpio, const char *label); /*设置gpio为输入状态,即设置如(GPH0CON)*/ int gpi ...

  3. Github授权新的设备ssh接入

    为Mac生成公钥 步骤: 检查本机是否已有公钥 ls -la ~/.ssh 将原来的公钥删除 rm -rf ~/.ssh 生成新的公钥(填自己的邮箱),然后除了密码,一路默认 ssh-keygen - ...

  4. Pytorch多进程最佳实践

    预备知识 模型并行( model parallelism ):即把模型拆分放到不同的设备进行训练,分布式系统中的不同机器(GPU/CPU等)负责网络模型的不同部分 —— 例如,神经网络模型的不同网络层 ...

  5. 十五、springboot集成定时任务(Scheduling Tasks)(二)之(线程配置)

    配置类: /** * 定时任务线程配置 * */ @Configuration public class SchedulerConfig implements SchedulingConfigurer ...

  6. java基础68 JavaScript城市联动框(网页知识)

    1.城市联动框 <!doctype html> <html> <head> <meta charset="utf-8"> <t ...

  7. Linux学习笔记:pwd与dirs的区别

    在Linux中可以使用pwd和dirs进行当前目录查看,分别用于显示当前目录和显示完整目录记录.具体如下: 1.pwd 显示当前目录 2.dirs 显示目录堆叠中的记录 END 2018-08-21  ...

  8. Python中super的应用

    约定 单继承 多继承 super 是个类 多继承中 super 的工作方式 参考资料 约定 在开始之前我们来约定一下本文所使用的 Python 版本.默认用的是 Python 3,也就是说:本文所定义 ...

  9. JAVA 转义字符串中的特殊字符

    package test; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { pu ...

  10. CentOs 安装 swftools

    一 下载安装包 #wget http://www.swftools.org/swftools-0.9.1.tar.gz 二 安装相关依赖库 #yum install gcc* automake zli ...