应用层笔记

应用层介绍

应用层提供对通信、消息传输这种底层网络应用的抽象接口,既提供系统与用户的接口;终端与服务端只要满足同一个应用协议即可正常通信。
应用层协议有:HTTP(Hyper Text Transfer Protocol)、HTTPS协议(Hyper Text Transfer Protocol over SecureSocket Layer)、DNS协议(Domain Name System)、FTP(File Transfer Protocol)。

参考了其他人的博客然后自己总结一些,后序附上参考连接

HTTP协议

用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据;
特点:无连接、无状态、简单快速、灵活,可使用cookie来追踪网页访问信息。

HTTP报文格式

请求报文具体格式
请求行请求方法 空格 URL 空格 协议版本 回车符 换行符
请求头部头部字段:值 回车符 换行符
空行回车符 换行符
请求数据请求内容
响应报文具体格式
状态行协议版本 空格 状态码 空格 状态消息
消息头部
空行
响应正文

请求行/状态行
of1.请求行说明请求类型,要访问的资源以及所使用的HTTP版本。
of2.状态行说明使用的HTTP版本,响应的状态
of1.请求方法:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT,其中最常用的为GET、POST。
of2.状态码:由3位数字组成,第一个数字定义了响应的类别;1**,已接受;2**,成功;3**,重定向;4**,客户端错误;5**,服务器错误。
of1.URL:统一资源标识符,格式为:协议、域名、端口、目录、文件名、参数部分、锚部分。
HTTP版本:HTTP/1.0支持:GET、POST、HEAD三种HTTP请求方法。HTTP/1.1是当前正在使用的版本。该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求。
请求头/消息头
提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。
通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
请求头域:允许客户端传递关于自身的信息和希望的响应形式。
响应头域:服务器和于传递自身信息的响应。
实体头域:定义被传送资源的信息。即可用于请求,也可用于响应。

请求数据/响应正文
of1.也叫请求主体,可以添加其他数据;其前面有一空行标识请求头部的结束,请求数据的开始;get请求时请求数据部分一般为空。
of2.也叫响应体,返回纯数据或HTML页面的HTML代码等类似信息。

拾遗

** HTTP请求/响应步骤**

  1. 建立TCP套接字连接,HTTP服务器默认端口80;
  2. 客户端发送请求报文;
  3. 服务器接收处理之后,发送响应报文;
  4. 若连接模式尾close则释放TCP连接,kepalive则保持一段时间;
  5. 客户解析响应报文内容,渲染并显示。
    get与post的区别
  6. get请求参数放在url之后(?号开始),pos请求参数放在请求数据里;
  7. get请求请求参数大小受限制,post没有;
  8. get因为请求参数暴露在url之后,更不安全,post请求参数支持多种编码方式,更为安全;
  9. GET产生一个TCP数据包;POST产生两个TCP数据包。
    Cookie/Session
    Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。
    Session是服务器端使用的一种记录客户端状态的机制,客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

HTTPS协议

提供数据加密的安全的http传输协议。

加密安全

数字证书
数字证书在一个身份和该身份的持有者所拥有的公/私钥对之间建立了一种联系;公钥周知,用于加密;私钥自持,用于解密。
对称加密/非对称加密
of1采用单个密钥加密,同一个密钥可以同时用来加密和解密。
of2非对称密钥加密也,由一对公钥和私钥组成;公钥是从私钥提取出来的。可以用公钥加密,再用私钥解密,这种情形一般用于公钥加密;也可以用私钥加密,用公钥解密,常用于数字签名,因此非对称加密的主要功能就是加密和数字签名。

拾遗

HTTP与HTTPS的区别

  1. HTTP协议是以明文的方式在网络中传输数据,而HTTPS协议传输的数据则是经过TLS加密后的,HTTPS具有更高的安全性;
  2. HTTPS在TCP三次握手阶段之后,还需要进行SSL 的handshake,协商加密使用的对称加密密钥;
  3. HTTPS协议需要服务端申请证书,浏览器端安装对应的根证书;
  4. HTTP协议端口是80,HTTPS协议端口是443。

DNS协议

DNS协议是用来将域名转换为IP地址;运行在UDP/IP协议之上;默认端口53

DNS报文格式

请求报文具体格式
1事务ID 标志
2问题计数 回答资源记录数
3权威名称服务器计数 附加资源记录数
4查询问题区域
5回答问题区域
6权为名称服务器区域
7附加信息区域

知识点

DNS分层
1.根DNS服务器;2.顶级域DNS服务器;3.权威DNS服务器;4.本地DNS服务器
DNS缓存
DNS的缓存是为了改善DNS解析的延迟性问题,同时减少因特网上的DNS报文数量。DNS服务器记录所解析的域名地址一段时间。
域名解析步骤
有递归查询方式,和迭代查询方式,一般使用两者结合的模式;

  1. 主机向本地域名服务器进行递归查询;
  2. 本地域名服务器采用迭代查询,向一个根域名服务器查询
  3. 根域名服务器告知本地域名服务器向哪个顶级域名服务器查询
  4. 本地域名服务器向顶级域名服务器查询
  5. 顶级服务器告知本地域名服务器查询对应的权限服务器
  6. 本地域名服务器向权限服务器查询
  7. 权限服务器告知本地域名服务器所查询的IP地址
  8. 本地域名服务器告知主机查询结果

拾遗

DNS攻击

  1. 基于主机耗尽型的dns查询拒绝服务攻击:向DNS服务器发送大量的DNS解析请求,由于DNS服务器每秒查询的次数有限,故使得DNS服务器忙,拒绝服务攻击;
  2. 基于宽带耗尽型的DNS反弹式拒绝服务攻击
    大量主机伪造受害者IP向互联网上的大量的开放式递归DNS服务器(不验证地址真实性)发送DNS查询请求,受害者将同时收到大量的DNS请求应答包,阻塞受害者DNS服务器网络,最终形成拒绝服务攻击。
  3. DNS服务器缓存攻击:向DNS服务器发送域名解析请求,在权威服务器应答之前,伪造应答发给受害服务器,从而使得DNS解析记录被缓存,一段时间内该域名所有的解析都是错误的。
  4. 路由器中的DNS服务器被劫持:完蛋。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值