zoukankan      html  css  js  c++  java
  • go web 读书笔记 (go 与 web 应用)

    一.为什么使用go编写web应用?

    1.1 大规模的web应用通常具备以下几点特征:

    • 可拓展
    • 模块化
    • 高性能
    • 可维护

    1.1.1 go与可拓展的web

    两种方法可以对性能进行拓展:

    • 垂直扩展  (即提升单台设备的CPU数量或者性能)
    • 水平扩展  (即增加设备的数量来提高性能)

    go 在垂直扩展拥有不俗的表现: 可以通过调度进行10W个goroutine

    go web可以编译成不包含任何依赖的静态二进制文件,可以安装到没有任何go环境的系统中,以一种简单一致的方式部署。

    1.1.2 go与模块化的web

    go 经常用于创建微服务

    1.1.3 go与可维护的web

    1.1.4 go与高性能的web

    go 语言设计目标就是接近C语言的性能,并发编程。

    1.2 Web应用的工作原理

    1.2.1 http 简介

    无状态,由文本构成的响应-请求协议,使用的是cs计算模型。

    1.2.2  幂等的请求

    put delete

    1.2.3  http2

    http2是二进制协议,多路复用,多个请求响应可以在同一时间共用一条连接,从而提高性能

    go 1.6之后使用https自动使用http2

    1.3 hello-world 第一个go web 应用

    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(":8081",nil)
    }
    

      

  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/EthanSun/p/13576652.html
Copyright © 2011-2022 走看看