请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

goweb-goweb基础

[复制链接]
查看: 42|回复: 0

2万

主题

3万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
81333
发表于 2020-1-14 14:50 | 显示全部楼层 |阅读模式
goweb

DNS工作道理


  • 在欣赏器中输入www.qq.com域名,操纵系统会先检查自己当地的hosts文件能否有这个网址映照关系,倘使有,就先挪用这个IP地址映照,完成域名分解。
  • 假如hosts里没有这个域名的映照,则查找当地DNS分解器缓存,能否有这个网址映照关系,倘使有,间接返回,完成域名分解。
  • 假如hosts与当地DNS分解器缓存都没有响应的网址映照关系,首先会找TCP/IP参数中设备的首选DNS办事器,在此我们叫它当地DNS办事器,此办事器收到查询时,假如要查询的域名,包含在当地设备地域资笔菩,则返回分解成果给客户机,完成域名分解,此分解具有势力巨擘性。
  • 假如要查询的域名,不由当地DNS办事器地域分解,但该办事器已缓存了此网址映照关系,则挪用这个IP地址映照,完成域名分解,此分解不具有势力巨擘性。
  • 假如当地DNS办事器当地地域文件与缓存分解都生效,则按照当地DNS办事器的设备(能否设备转发器)举行查询,假如未用转发形式,当地DNS就把请求发至 “根DNS办事器”,“根DNS办事器”收到请求后会判定这个域名(.com)是谁来授权治理,并会返回一个负责该顶级域名办事器的一个IP。当地DNS办事器收到IP信息后,将会联系负责.com域的这台办事器。这台负责.com域的办事器收到请求后,假如自己没法分解,它就会找一个治理.com域的下一级DNS办事器地址(qq.com)给当地DNS办事器。当当地DNS办事器收到这个地址后,就会找qq.com域办事器,反复上面的行动,举行查询,直至找到www.qq.com主机。
  • 假如用的是转发形式,此DNS办事器就会把请求转发至上一级DNS办事器,由上一级办事器举行分解,上一级办事器假如不能分解,或找根DNS或把转请求转至上下级,以此循环。不管当地DNS办事器用的是转发,照旧根提醒,末端都是把成果返回给当地DNS办事器,由此DNS办事器再返回给客户机。
GET和POST的区分:


  • 我们可以看到GET请求消息体为空,POST请求带有消息体。
  • GET提交的数据会放在URL以后,以?朋分URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456。POST方式是把提交的数据放在HTTP包的body中。
  • GET提交的数据巨细有限制(由于欣赏器对URL的长度有限制),而POST方式提交的数据没有限制。
  • GET方式提交数据,会带来平安题目,比如一个登录页面,经过GET方式提交数据时,用户名和密码将出现在URL上,假如页面可以被缓存大要其他人可以拜候这台呆板,便可以从历史记录获得该用户的账号和密码。
网页优化方面有一项步伐是淘汰HTTP请求次数,就是把尽管多的css和js资本合并在一路,目标是尽管淘汰网页请求静态资本的次数,进步网页加载速度,同时减缓办事器的压力。
http包建立第一个办事器
  1. package mainimport (    "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)    }}
复制代码
这个就是高并颁发示了,用户的每一次请求都是在一个新的goroutine去办事,相互不影响。
这一章是把全部http包给表白了一遍,读起来有点难度。
地址

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表