HTTP 协议
- HTTP 协议无状态,需要使用 Cookie 机制来维护连接状态
- 请求包格式例:
|
|
- HTTP协议定义了很多与服务器交互的请求方法,最基本的有4种,分别是 GET,POST,PUT,DELETE
- GET 和 POST 除语义、长度外,本质上没有区别
- 相应包格式:
|
|
- 状态码:
- 1XX 提示信息 - 表示请求已被成功接收,继续处理
- 2XX 成功 - 表示请求已被成功接收,理解,接受
- 3XX 重定向 - 要完成请求必须进行更进一步的处理
- 4XX 客户端错误 - 请求有语法错误或请求无法实现
- 5XX 服务器端错误 - 服务器未能实现合法的请求
- 从HTTP/1.1起,默认都开启了Keep-Alive保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的TCP连接
- Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同服务器软件(如Apache)中设置这个时间。
Go 的 http 包
下面的代码调用了 http 包,并能够在 9090 端口上接受 http 请求:
|
|
Web 开发主要涉猎
- 表单处理
- 表单输入
- 输入过滤
- 表单验证
- XSS 攻击预防
- 多次提交预防
- 文件上载
- CSRF 攻击预防
- 数据库处理
- ORM
- 会话与数据存储
- session 与 cookie
- session 存储
- session 劫持预防
- 文本文件处理
- JSON 处理
- 正则处理
- 模板处理
- 文件操作
- 服务
- WebSocket
- RESTful
- RPC
- 本地化
- 错误处理
- 调试
- 测试
- 线上
- 日志
- 部署
- 备份
- 回复
Beego orm
- Beego orm 是一个 ORM 操作库,采用了 Go style 的数据库操作,实现了 struct 到数据表记录的映射。
- Beego orm 支持 database/sql 标准接口,只要数据库驱动支持 database/sql 接口就可介入 beego orm,主要包括:
- Mysql: github/go-mysql-driver/mysql
- PostgreSQL: github.com/lib/pq
- SQLite: github.com/mattn/go-sqlite3
- Mysql: github.com/ziutek/mymysql/godrv
- 安装
go get github.com/astaxie/beego
初始化
- 导入相应的数据库驱动及 database/sql 标准接口以及 beego orm 包
|
|