应用层协议http/dns

应用层负责应用程序之间的数据沟通
典型协议::http协议,ftp传文件 SMTP邮件协议,DNS,自定制协议
1自定制协议:
1.1用结构体进行序列化和反序列化结构体解析本身就是反序列化的过程
1.1.1序列化:将数据对象按照持久化存储或者网络数据传输的格式进行排布的过程
1.1.2反序列化:对数据以指定的协议进行解析
1.1.3jason序列化ason组织序列化–>然后按照jasson方式解析protobuf–>序列化
2知名协议http超文本传输协议
2.1url统一资源定位符(网址)
协议名称://用户名:密码@服务器地址(域名):服务器端口/资源路径(/不是根目录相对目录)?查询字符串#片段标识符
在这里插入图片描述
urllencode/urldecode,url中特殊字符都有特殊含义若查询特殊字符会出现二义性
urlencode:将特殊字符串转换为16进制字符串,并且在前方用%表明两个字符串是否经过编码
urldecode:当查询字符串中出现%则认为,后序两个字符是需要进行url解码的
http协议格式
请求首行
请求方法GET/POS + url协议版本(0.9 1 1.1 2)
get和post的区别get提交的数据在url,post提交数据在正文
响应首行:协议版本 状态码,状态码描述
状态码1xx正在处理2请求成功3重定向4客户端无法访问5服务器错误
2开头这次请求处理成功3开头重定向(通常和location搭配使用–>后面为其他地址)4开头客户端开头(404,400)5开头服务器的错误(502坏的网关(路由器就是局域网的网关)地址) 200ok请求正常处理,301永久重定向(网址永久移动到loction标题给定的页面)
transfer-enconding: chunked–>传输方式在传输数据时候以分块形式传输,传输时候会告诉接下来发送数据多长(每次发送正文之前说发送数据多长),以0,结尾–>不知道数据多长就有必要了
请求头部header
(1)contentype数据类型txt html Content-Length: Body的长度host客户端告知服务器请求资源在哪个主机哪个端口user-agent用户的操作系统和浏览版本referer 页面从哪个页面跳转过来location搭配303用重定向的位置cookie用字客户端存储少量信息实现会话功能transfer-enconding: chunked–>传输方式在传输数据时候以分块形式传输,传输时候会告诉接下来发送数据多长(每次发送正文之前说发送数据多长),以0,结尾
空行\r\n
正文
2dns
通过域名获取到服务器ip地址
域名:服务器ip地址的一种表现形式
全世界各地放置了域名服务器,全世界根域名服务器全世界只有13组
域名非常多–>这十三个向下授权往下分给出名公司,组建自己的域名服务器-.com(商业性质,.ort工艺性的 .gov政府.edu教育.cn国家(中国).jp(日本))–>顶级域名服务器
.com公司也有很多—>二级域名.qq.com .baidu.com
三级域名 .zhidao.baidu.com .image.baidu.com(图片)
域名服务器的存储方式采用分布式存储
好处:提高速度分摊压力,提高容灾能力
域名服务器的解析流程:
检测本机hosts文件–>是否有对应关系(没有则向)cat/etc/host–> 检测本地DNS解析器缓存(么有则向)–>本地DNS服务器(8.8.8.8(谷歌DNS服务器))(自动获取是获取运营商的)(如果没有)—>根域名服务器发起请求(有没有映射关系)如果没有告诉你一个地方(比如www.baidu.com)就是.com域名服务器–>本地DNS服务器向.com发送 请求,如果.com服务器也没有然后.image.baidu.com向这里发送请求不知道继续往下–>如果一直没有找到DNS解析失败(递归形式的)—>如果知道逐层返回或者直接返回(域名解析两种方式)
输入url+回车发生了什么以百度为 例子
1.DNS解析-本地DNS服务器2.组织http请求信息3.建立tcp客户端发送http请求–>可靠传输tcp4网络层ip协议(两个ip地址)5链路层以太网协议eth(封装帧头帧尾)pc–dns解析找到返回ip地址pc–>运营商CDN服务器(内容分发网络(缓冲大量静态网页资源(idex.hml)))没有–>百度服务器–>入口服务器(反向代理服务器(也有静态资源))百度服务器—>(分词服务器)+资源检索服务器(对应资源路径)+资源服务器(请求资源)—>都是一组一组的服务器–>每个服务器负责相应功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值