Go语言实现简单的一个静态WEB服务器

Android SDK的文档直接打开的话会很慢,而且不支持搜索。所以,本地搭建静态服务器是必要的。以下为引用的其他博客的资源,感谢作者。

首先,搭建一个静态的服务器 我写程序喜欢使用HTML通过AJAX发送JSON请求到后端处理。 HttpServer.go 代码如下:

package main
import (
        "flag"
        "io/ioutil"
        "log"
        "net/http"
        "os"
        "strings"
)

var realPath *string

func staticResource(w http.ResponseWriter, r *http.Request) {
        path := r.URL.Path
        request_type := path[strings.LastIndex(path, "."):]
        switch request_type {
        case ".css":
                w.Header().Set("content-type", "text/css")
        case ".js":
                w.Header().Set("content-type", "text/javascript")
        default:
        } 
        fin, err := os.Open(*realPath + path)
        defer fin.Close()
        if err != nil {
                log.Fatal("static resource:", err)
        } 
        fd, _ := ioutil.ReadAll(fin)
        w.Write(fd)
}

func main() {
        realPath = flag.String("path", "", "static resource path")
        flag.Parse()
        http.HandleFunc("/", staticResource)
        err := http.ListenAndServe(":8080", nil)
        if err != nil {
                log.Fatal("ListenAndServe:", err)
        } 
}

更BT的方法:

package main
import (
        "net/http"
)
func main() {
        http.Handle("/", http.FileServer(http.Dir("/tmp/static/")))
        http.ListenAndServe(":8080", nil)
}

将EasyUI前端框架解压到 /tmp/static 目录下:

在GOPATH下执行

go run HttpServer.go --path=/tmp/static
时间: 2024-10-03 05:23:11

Go语言实现简单的一个静态WEB服务器的相关文章

做的简单的一个静态web服务器,遇到个bug, 提示osError,费了一番功夫找到了bug出处,这点一不小心就错了,socket须先绑定,再listen,如果是先listen再绑定,系统会自动分配一个端口,而程序绑定不了

代码改正之前,先执行了listen,到了bind就报错:此程序只需将listen和改到bind后面即可 from socket import *from multiprocessing import Process import re HTML_FILE = './html' class Server(object):     def __init__(self):          self.server_socket = socket(AF_INET,SOCK_STREAM)       

04-HTTP协议和静态Web服务器

一.HTTP协议(HyperText Transfer Protocol) 超文本传输协议,超文本是超级文本的缩写,是指超越文本限制或者超链接,比如:图片.音乐.视频.超链接等等都属于超文本.    传输 HTTP 协议格式的数据是基于 TCP 传输协议的,发送数据之前需要先建立连接. 作用: 它规定了浏览器和 Web 服务器通信数据的格式,也就是说浏览器和web服务器通信需要使用http协议. 小结: * HTTP协议是一个超文本传输协议 * HTTP协议是一个基于TCP传输协议传输数据的 *

深入理解Tornado——一个异步web服务器

本人的第一次翻译,转载请注明出处:http://www.cnblogs.com/yiwenshengmei/archive/2011/06/08/understanding_tornado.html原文地址:http://golubenco.org/?p=16 这篇文章的目的在于对Tornado这个异步服务器软件的底层进行一番探索.我采用自底向上的方式进行介绍,从轮巡开始,向上一直到应用层,指出我认为有趣的部分.所以,如果你有打算要阅读Tornado这个web框架的源码,又或者是你对一个异步we

nginx配置静态web服务器

配置静态的web,需要实现一个虚拟主机. step1: 准备工作 1  查看你的网卡地址(我的 192.168.223.135) #ifconfig 我们这里建立两个web服务器,所以增加一个网卡地址. #ifconfig eth0:0  192.168.223.145 2 建立两个站点目录 #mkdir  /var/tmp/website1 #mkdir  /var/tmp/website2 3 建立两个日志目录 #mkdir  /var/tmp/log/website1 #mkdir  /v

Socket 初识 用Socket建立一个简易Web服务器

摘自<Asp.Net 本质论>作者:郝冠军 //在.Net中.system.Net命名空间提供了网络编程的大多数数据据类型以及常用操作,其中常用的类型如下:/*IPAddress 类表示一个IP地址* IPEndPoint类用来表示一个IP地址和一个端口号的组合,成为网络的端点.* System.Net.Sockets命名空间中提供了基于Socked编程的数据类型.* Socket类封装了Socked的操作.* 常见的操作:* Listen:设置基于连接通信的Socket进入监听状态,并设置等

golang的最简单的文件浏览web服务器

网上看到的,记录下,备用 package main import ( "net/http" ) func main() { http.Handle("/", http.FileServer(http.Dir("./"))) http.ListenAndServe(":8080", nil) } golang的最简单的文件浏览web服务器,布布扣,bubuko.com

多线程静态Web服务器开发小试(java)

多线程静态Web服务器(原创)Java版本 克服内存溢出问题采用缓冲式输出 文件一:HttpWebServerOfLcl.java package com.cn.lcl; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Input

Python之HTTP静态Web服务器开发

众所周知,Http协议是基于Tcp协议的基础上产生的浏览器到服务器的通信协议 ,其根本原理也是通过socket进行通信. 使用HTTP协议通信,需要注意其返回的响应报文格式不能有任何问题. 响应报文,一共包括4个部分,分别是响应行,响应头,空行,响应体,并且每项数据之间必须使用/r/n隔开. 空行是区分响应头和响应体的必要数据,不能省略. HTTP静态Web服务器主要开发思路如下: 1.导入socket模块 2.创建socket对象 3.设置端口复用,解决端口阻塞问题 4.绑定端口及ip 5.设

写一个简易web服务器、ASP.NET核心知识(4)

前言 昨天尝试了,基于对http协议的探究,我们用控制台写了一个简单的浏览器.尽管浏览器很low,但是对于http协议有个更好的理解. 说了上面这一段,诸位猜到我要干嘛了吗?(其实不用猜哈,标题里都有,又都不瞎...我就是调侃一下,说些没营养的笑话.我认为这样能不那么枯燥,尽管不好笑吧,但这不重要!) 没错,今天要尝试的东西,是自己写一个web服务器.初衷依旧和昨天一样,旨在理解一些东西,而不是真的写出一个多牛的东西. 第一次尝试(V1.0) 1.理论支持 其实关于http协议的理论方面我在<写