Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个可以运行的Web服务。同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。

http包建立Web服务器

package main

import (

"fmt"

"net/http"

"strings"

"log"

)

func sayhelloName(w http.ResponseWriter, r *http.Request) {

r.ParseForm()  //解析参数,默认是不会解析的

fmt.Println(r.Form)  //这些信息是输出到服务器端的打印信息

fmt.Println("path", r.URL.Path)

fmt.Println("scheme", r.URL.Scheme)

fmt.Println(r.Form["url_long"])

for k, v := range r.Form {

fmt.Println("key:", k)

fmt.Println("val:", strings.Join(v, ""))

}

fmt.Fprintf(w, "Hello astaxie!") //这个写入到w的是输出到客户端的

}

func main() {

http.HandleFunc("/", sayhelloName) //设置访问的路由

err := http.ListenAndServe(":9090", nil) //设置监听的端口

if err != nil {

log.Fatal("ListenAndServe: ", err)

}

}

上面这个代码,我们build之后,然后执行web.exe,这个时候其实已经在9090端口监听http链接请求了。

在浏览器输入http://localhost:9090

可以看到浏览器页面输出了Hello astaxie!

可以换一个地址试试:http://localhost:9090/?url_long=111&url_long=222

看看浏览器输出的是什么,服务器输出的是什么?

在服务器端输出的信息如下:

图3.8 用户访问Web之后服务器端打印的信息

我们看到上面的代码,要编写一个Web服务器很简单,只要调用http包的两个函数就可以了。

如果你以前是PHP程序员,那你也许就会问,我们的nginx、apache服务器不需要吗?Go就是不需要这些,因为他直接就监听tcp端口了,做了nginx做的事情,然后sayhelloName这个其实就是我们写的逻辑函数了,跟php里面的控制层(controller)函数类似。

如果你以前是Python程序员,那么你一定听说过tornado,这个代码和他是不是很像,对,没错,Go就是拥有类似Python这样动态语言的特性,写Web应用很方便。

如果你以前是Ruby程序员,会发现和ROR的/script/server启动有点类似。

我们看到Go通过简单的几行代码就已经运行起来一个Web服务了,而且这个Web服务内部有支持高并发的特性,我将会在接下来的两个小节里面详细的讲解一下Go是如何实现Web高并发的。

JAVA个go哪个写web方便_Go语言实现的一个简单Web服务器相关推荐

  1. 测试开发——搭建一个简单 web服务(flask框架基础)项目实战

    搭建一个简单 web服务-flask框架 一.什么是wsgi? 二.搭建一个简单 web服务 三.扩展 四.请求加参数的情况 五.安装flask 一.什么是wsgi? wsgi是webserver和a ...

  2. 使用 Python 的 flask 架构搭建一个简单web网站

    使用 Python 的 flask 架构搭建一个简单web网站 1.flask最简单框架,返回hello world: from flask import * app = Flask(__name__ ...

  3. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  4. java8生成jsp页面内容组装到jsp中_JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  5. 一个html写的app首页,如何快速开发一个简单好看的APP控制页面

    原标题:如何快速开发一个简单好看的APP控制页面 导读 机智云开源框架为了让开发者快速开发APP,已将用户登录,设备发现,设备配网等功能做成了各个标准模块,仅保留控制页面让开发者自行开发设计,节省了开 ...

  6. 如何写shell脚本?尝试自己编写一个简单脚本。

    1 背景介绍 每次发布tomcat项目的时候都要反复敲一些命令,重启tomcat之前先检查tomcat进程有没有停掉,没有还要手动kill该进程,单独部署一个项目还好,如果一次多个部署,就比较费劲了 ...

  7. 如何用Java编写一个简单的服务器和客户机

    今天我要向大家介绍的是自己编写的一个比较简单的服务器和客户机程序,注意一下哦,比较简单.好了,闲话休提,砸门直入主题. 小编先从客户机和服务器的模型开始讲解.简单来说,我们实现的这种模型呢,我们每一个 ...

  8. java虚拟机运行C语言_用C语言来实现一个简单的虚拟机

    必要的准备工作及注意事项: 在开始之前需要做以下工作: 一个C编译器--我使用了 clang 3.4,也可以用其它支持 c99/c11 的编译器: 文本编辑器--我建议使用基于IDE的文本编辑器,我使 ...

  9. java web svn_如何搭建svnadmin,一个简单的svnWEB页面

    Svn Admin是一个Java开发的管理Svn服务器的项目用户的web应用.安装好Svn服务器端好,把Svn Admin部署好,就可以通过web浏览器管理Svn的项目,管理项目的用户,管理项目的权限 ...

最新文章

  1. ehchache验证缓存过期的api_ASP.NET Core ResponseCache进行缓存操作
  2. 图上的对抗与攻击精选论文列表(​2021相关论文一览)
  3. 【小白学习keras教程】二、基于CIFAR-10数据集训练简单的MLP分类模型
  4. springboot控制接口返回的字段_SpringBoot实战:SpringBoot之Rest Full接口自定义返回数据类型(ResponseBodyAdvice)...
  5. java十六进制大小端转换_字节顺序
  6. redis java 缓存服务器_java中对Redis的缓存进行操作
  7. 递增的整数序列链表的插入_LeetCode基础算法题第178篇:和为零的N个唯一整数
  8. leetcode力扣454. 四数相加 II
  9. 力扣每日一刷--验证回文串
  10. iozone测试文件系统IO性能
  11. 可拖拽的窗口(Vue)
  12. 安装yasm(汇编编译器)和 nasm
  13. Macbook Pro M1(macOS 12.0)读取NTFS移动硬盘方法
  14. obs多推流地址_如何用OBS将腾讯会议推流到一直播上进行直播
  15. css3 实现十字光标和光标外圆圈环绕
  16. matlab如何实现动态显示,matlab 坐标图动画,动态显示数据
  17. m_p,m_n,CStudent等变量前缀的理解
  18. 详细设计说明书-模板(referrence)
  19. 第八次网络前端培训笔记
  20. 中国金属采矿行业前景调研及发展战略深度研究报告2022-2028年

热门文章

  1. zencart分类页每页显示产品数量自定义选择的方法
  2. Direct3D提高篇:HLSL编程实现PhotoShop滤镜效果(1)
  3. 自定义列表字段类型(3)
  4. 关于SharePoint部署Webpart的十个必读链接(downmoon)
  5. 【数据库】数据库常见操作指令
  6. 自定义SpringBoot Starter实现
  7. 【网址收藏】Docker中ADD和COPY的区别
  8. 【收藏】如何查看linux服务器内存使用情况
  9. idea pycharm设置鼠标滚轮改变字体大小的方法
  10. Scala赋值运算符分类