当前位置: 首页 > news >正文

怎么做商业服务网站广州企业自助建站

怎么做商业服务网站,广州企业自助建站,简洁大气传媒公司名字,宁波外贸网站推广优化文章目录 从零开始学Go web——第一天一、Go与web应用简介1.1 Go的可扩展性1.2 Go的模块化1.3 Go的可维护1.4 Go的高性能 二、web应用2.1 工作原理2.2 各个组成部分2.2.1 处理器2.2.2 模板引擎 三、HTTP简介四、HTTP请求4.1 请求的文本数据4.2 请求方法4.2.1 请求方法类型4.2.2… 文章目录 从零开始学Go web——第一天一、Go与web应用简介1.1 Go的可扩展性1.2 Go的模块化1.3 Go的可维护1.4 Go的高性能 二、web应用2.1 工作原理2.2 各个组成部分2.2.1 处理器2.2.2 模板引擎 三、HTTP简介四、HTTP请求4.1 请求的文本数据4.2 请求方法4.2.1 请求方法类型4.2.2 安全的请求方法4.2.2 幂等的请求方法4.2.2 浏览器对请求方法的支持 4.3 请求首部 五、HTTP响应5.1 响应状态码5.2 响应首部5.3 URI 六、HTTP/2 从零开始学Go web——第一天 ​ “工欲善其事必先利其器”学习web的第一天当然是要学习与web息息相关的就是HTTP协议等知识点因此第一天让我们一起聊聊Go与web的关系、web应用、HTTP的简介/请求/响应以及HTTP2协议, 开启快乐学习Go web! 一、Go与web应用简介 ​ Go语言是一门函数式和过程式并存语言并且提供了现代化包管理系统、垃圾收集机制、以及各种功能强大的标准库。 ​ 而web应用具备的四个条件 可扩展的简单、快速地提升应用的性能以便处理更多的请求。比如管理者可以通过添加硬件来提升请求处理能力模块化大规模的web应用应该由可替换的组件构成使得可以快速添加、移除、修改以便更好地复用。可维护高性能 1.1 Go的可扩展性 Go语言的扩展包括两个方面 水平扩展: Go语言可以编译为不包含动态依赖关系的静态二进制文件从而可以在没有安装Go语言的系统里面部署Go web应用。垂直扩展: Go web应用只需要一个操作系统线程就可以高效运行数十万个goroutine。 1.2 Go的模块化 Go语言的模块化包括以下两个方面: Go语言的接口。接口可以实现动态类型匹配机制其中Go语言的函数可以接受接口作为参数用户只需要实现了接口的方法就可以将接口作为参数传递给函数实现动态类型传参。同时Go语言也实现了一个空接口可以把任何类型的值作为函数的实际参数。 创建微服务。创建多个规模较小的Go服务也就是一个个Go包并且将它们组合为当个web应用。 1.3 Go的可维护 gofmt格式化源代码godoc对go源代码以及注释进行语法分析并且使用html、纯文本或者其他多种格式生成文档。gotest自动寻找与源代码位于同一个包的测试代码并进行功能测试和性能测试。同时也提供了web测试工具如httptest。 1.4 Go的高性能 Go程序会编译为本地码比一般的解释型语言要更加快Go的goroutine对并发编程有了更好的支持。 二、web应用 2.1 工作原理 ​ web服务器对客户端发送的HTTP请求做出响应并且将响应HTTP返回给客户端。一个web服务器就是一个web应用。 ​ web应用对请求进行处理然后执行应用程序中预先设定好的操作。 因此web服务器是一种特殊的web应用只会返回请求的文件。若我们要想构建一个web应用必须符合以下两个条件 必须向发送命名请求的客户端返回HTML而客户端会展示渲染后的HTML 在向客户端传输数据的时候必须使用HTTP协议。 2.2 各个组成部分 web应用主要包括如下三部分 HTTP请求报文获取客户端输入处理请求报文生成HTML并且以HTTP响应报文的形式返回给客户端。 为了完成这些步骤web应用被分为处理器(handler)和模板引擎(template engine)两个部分。 2.2.1 处理器 ​ 接收和处理客户端请求调用模板引擎生成HTML并且将数据填充至响应报文中。 2.2.2 模板引擎 ​ 通过模板和数据生成最终的HTML分为静态模板和动态模板 静态模板夹杂着占位符的HTML。将占位符替换为对应数据来生成最终的HTML不包含或者只包含少量的逻辑代码也称为无逻辑模板。动态模板包含HTML、占位符、编程语言结构如条件语句、变量等。如JSP、ASP等及时动态模板引擎。 三、HTTP简介 ​ HTTP是万维网的应用层通信协议。目前总共有两个版本HTTP1.1和HTTP2.0又称为HTTP/2目前使用最广泛的还是HTTP1.1。 ​ 那么什么是HTTP呢HTTP是一种无状态、由文本构成的请求-响应协议使用的是客户端-服务器的计算模型。 无状态只知道当前的请求和响应后续的请求对之前的请求一无所知。 请求和响应发送端发送请求给接收端接收端响应数据给发送端。 客户端-服务端客户端称为客户代理服务端为客户端提供服务。 四、HTTP请求 4.1 请求的文本数据 ​ HTTP请求的数据也称为HTTP请求报文主要有以下四部分组成 请求行(request-line)请求首部(header零个或者多个)空行(一个)报文主体(body可选) 典型的HTTP请求报文如下所示: GET / HTTP/1.1 # GET代表的是请求方法(request method),之后跟的是URI以及所用的HTTP版本 Host: 127.0.0.1:8083 # 请求首部 User-Agent: curl/7.58.0 # 请求首部 Accept: */* # 请求首部 (空行) # 空行必须存在注: #后添加的是注释 4.2 请求方法 4.2.1 请求方法类型 ​ 请求方法表明了客户端想要对资源执行的操作。HTTP1.1具有GET、PUT、DELETE、OPTIONS、TRACE、CONNECT这六个方法。HTTP1.1只需要实现GET方法和HEAD方法其它方法都是可选的。 GET命令服务器返回指定的资源 HEAD不要求服务器返回报文的主体。通常应用于只需要获取响应首部。 POST: 报文主体数据传递给URI指定资源数据做啥由服务器本身决定。 PUT: 报文主体数据设置为URI指定资源若URI指定位置有数据则进行替换否则在URI指定位置上新建一个资源 DELETE删除服务器指定URI资源 TRACE: 返回请求本身。 OPTIONS: 返回它支持的HTTP方法列表 CONNECT: 客户端和服务器建立网络连接。通过用于设置SSL隧道以开启HTTPS功能 PATCH: 使用报文主体中的数据对指定URI资源进行修改 4.2.2 安全的请求方法 ​ 不会对服务器状态进行修改。GET、HEAD、OPTIONS、TRACE是安全的请求方法 4.2.2 幂等的请求方法 ​ 第二次调用不会对服务器状态进行改变。安全的请求方法是幂等的此外PUT和DELETE也是幂等的。 4.2.2 浏览器对请求方法的支持 ​ GET是所有浏览器支持的。 ​ 对于传输的数据来说HTML不支持除了GET和POST之外其他HTTP请求方法。但是用户可以通过XHR来获取PUT和DELETE的支持该技术可以实现XML、JSON、纯文本等任何格式的请求和响应。 4.3 请求首部 ​ 记录了与请求本身以及客户端相关的信息。由任意多个冒号分隔的纯文本键值对组成以回车和换行结尾。 ​ 注Host首部字段是HTTP1.1强制要求的首部其余的都是可选的。 ​ 若请求报文中包含了请求主题那么请求首部需要携带内容长度(Content-Length)或者传输编码(Transfer-Encoding)字段。 五、HTTP响应 ​ HTTP响应报文是对HTTP请求报文的回复主要有以下四部分组成 状态行(一个)响应首部(header零个或者多个)空行(一个)报文主体(body可选) 典型的HTTP响应报文如下所示: HTTP/1.1 200 OK # 状态行,包含HTTP协议类型状态码(status code)和相应的原因短语(reason phrase) Content-Type: text/plain; charsetutf-8 # 响应首部 Date: Mon, 27 Nov 2023 08:21:42 GMT # 响应首部 Content-Length: 12 # 响应首部 (空行) Hello World! # 报文主体5.1 响应状态码 ​ HTTP响应类型总共有5种分别以不同的数字作为前缀 5.2 响应首部 ​ 格式和请求首部一样。为客户端提供更多与请求相关或者与客户端诉求相关的信息。常用的响应首部如下所示 5.3 URI ​ 统一资源标识符(Uniform Resource Identifier,URI)使用位置字符串表示互联网资源。字符串表示资源名称URN字符串表示资源路径URI。URL是一个涵盖的术语包含了URI和URN。 ​ URI的一般格式: 方案名称:分层部分[?查询参数][#片段]注只有方案名称和分层部分是必须的其它是可选的。 方案名称(scheme name)记录了URI使用的方案定义了URI其余部分结构。URI具有大量的方案在HTTP中使用的是HTTP方案。 分层部分(hierarchical part)包含了资源的识别信息。若以//开头则包含了可选的用户信息(以结尾)。在用户信息(可选的)后面跟着的是分层路径该路径由分段组成各个分段之间由/分隔。 查询参数由一连串的键值对构成它们之间由分隔 片段由#为前缀对URI定义的次级资源进行标识。 由于URI的片段是由客户端处理的而web浏览器在将URI发送给服务器之前会将片段移除若想要获取片段的信息则需要使用JS或者某个HTTP客户端库将URI片段包含在GET请求里面。 ​ HTTP URI方案示例: http://pzs:passwordwww.example.com/docs/file?namepzslocationchina#summy # http代表方案。之前分段记录了用户名和密码而之后的www.example.com/docs/file记录的是分层部分的其余部分其中最高层为www.example.com后面的两个层为doc何file,每个分层由/分隔。之后是查询参数最后有一个#结尾的片段。​ Tips: 每个URL是一个独立字符串不能使用空格。同时#和?有特殊意义不能用于其它用途。若想要避开这些限制则必须使用URL编码来将特殊符号进行转换。示例如下所示: http://pzswww.example.com/docs/file?namep zslocationchina#summy 经过转换后为: http://pzswww.example.com/docs/file?namep%20zslocationchina#summy #空格的ASCII码为20然后在前面再加上一个%形成URL编码 六、HTTP/2 ​ 一种二进制通信协议使得语法分析更加高效、紧凑、健壮。当然这样的话就无法使用telnet程序进行调试了。 ​ HTTP2是多路复用的多个请求和响应可以同时使用一个连接。而HTTP1.1只能一个请求和响应对应一个连接。 ​ HTTP2允许对首部进行压缩减少数据传输量并且允许服务器将响应推送给客户端。 ​ 在新版本的Go语言中使用HTTPS则默认使用HTTP2协议 ​ ​ 好啦第一天的web学习到此就结束喽第二天让我们一起来写属于自己的第一个Go web程序
http://www.zqtcl.cn/news/705847/

相关文章:

  • 漳州建设银行网站首页速成建站
  • 网站建立的链接不安全怎么解决学校网站怎样建设
  • 信阳市工程建设信息网站wordpress段子
  • 网站建设和网络搭建是一回事吗长沙网站搭建优化
  • 基础网站怎么做石景山公司
  • 吉他谱网站如何建设wordpress主题字体用隶书
  • 做一个宣传网站的策划书自己怎样推广呢
  • 网站建设布局利于优化火狐搜索引擎
  • 公司给别人做的网站违法吗hexo插件wordpress
  • 网站用什么语言做动易网站迁移
  • 网站备案上传照片几寸织梦模板网站好吗
  • 怎么通过数据库做网站的登录wordpress 注册登录插件
  • 读书网站排名大的网站建设公司好
  • 电商网站建设系统公司 网站建
  • 西安建站费用优化系统是什么意思
  • 做网站认证对网站有什么好处中信建设有限责任公司四川分公司电话
  • 王者做网站福州seo外包公司
  • 网站建设教程百度网盘网站报价明细
  • 网站建设杭州哪家好ui设计学校
  • 门户网站做等级保护测评成都企业建站系统
  • 网站建设需求确认表网站建设需求材料
  • 定制型网站制作价格北京网站建设费用
  • 与女鬼做的网站上海有限公司
  • ytwzjs烟台网站建设c 做的网站又哪些
  • 做网站就是做app中国包装创意设计网
  • 淄博做网站宿迁房产网丫丫找房
  • 苏州专业做网站比较好的公司杭州好的公司网站设计
  • 做百度网站要多少钱帮做网站一般多少钱
  • 云南网站备案查询山西做网站费用
  • 北京建站管理系统开发网站高转化页面