Go再学习_6.Go Web基础知识

Web

URI与URL

URI 统一资源标识符(uniform resource identifier URI),可以提供找到该资源的路径。
URL 统一资源定位符(uniform resource locator URL) 是URI的子集。
URN Uniform Resource Name 统一资源名称,也是URI的子集,但是没流行起来。

URI有很多种,比如mailto:[email protected], urn:isbn:0-486-27557-4 ....
URL主要用在互联网,用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

scheme://host[:port#]/path/.../[?query-string][#anchor]
scheme         指定低层使用的协议(例如:http, https, ftp)
host           HTTP服务器的IP地址或者域名
port#          HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/
path           访问资源的路径
query-string   发送给http服务器的数据
anchor         锚

HTTP

HTTP/1.1 200 OK                        //状态行
Server: nginx/1.0.8                    //服务器使用的WEB软件名及版本
Date:Date: Tue, 30 Oct 2012 04:14:25 GMT        //发送时间
Content-Type: text/html                //服务器发送信息的类型
Transfer-Encoding: chunked            //表示发送HTTP包是分段发的
Connection: keep-alive                //保持连接状态
Content-Length: 90                    //主体内容长度
//空行 用来分割消息头和主体
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"... //消息体

状态码由三位数字组成,第一个数字定义了响应的类别

  • 1XX 提示信息 - 表示请求已被成功接收,继续处理
  • 2XX 成功 - 表示请求已被成功接收,理解,接受
  • 3XX 重定向 - 要完成请求必须进行更进一步的处理
  • 4XX 客户端错误 - 请求有语法错误或请求无法实现
  • 5XX 服务器端错误 - 服务器未能实现合法的请求

要使表单能够上传文件,要添加form的enctype属性,enctype属性有如下三种情况:

application/x-www-form-urlencoded   //表示在发送前编码所有字符(默认)
multipart/form-data      //不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain      //空格转换为 "+" 加号,但不对特殊字符编码。

GDB

编译Go程序的时候需要注意以下几点:

  • 传递参数-ldflags "-s",忽略debug的打印信息
  • 传递-gcflags "-N -l" 参数,这样可以忽略Go内部做的一些优化,聚合变量和函数等优化,这样对于GDB调试来说非常困难,所以在编译的时候加入这两个参数避免这些优化。

建议纯go代码使用delve可以很好的进行Go代码调试

你可能感兴趣的:(Go语言)