计网之应用层

因特网协议概述

计网之应用层_第1张图片

常用协议
应用层 HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)、DHCP(动态主机配置协议)、SNMP(简单网络管理协议)
运输层 TCP(传输控制协议)、UDP(用户数据报协议)、SCTP(流控制传输协议)、DCCP(数据报式传输协议)
网络层 IP(Internet Protocol) 、ICMP(Internet Control Message Protocol)、ARP(地址解析协议)、RAR(逆地址解析协议)、OSPF(开放最短路径优先)、BGP(边界网关协议)
链路层 PPP(点对点协议)、HDLC(高级数据链路控制)、Ethernet(以太网)、Wi-Fi(无线局域网)、ATM(异步传输模式)、FDDI(光纤分布式数据接口)
物理层 IEEE 802.3(以太网)、IEEE 802.11(Wi-Fi)、SONET(同步光纤网络)、DSL(数字用户线路)、USB(通用串行总线)、HDMI(高清晰度多媒体接口)

应用层协议原理

进程通信

客户发起通信、服务器等待联系

套接字

  • 进程通过套接字这个软件接口,向网络发送和接收报文
  • 应用层与运输层的接口
  • 应用程序与网络的应用程序编程接口(API)
  • 提供了一种抽象层,隐藏了底层网络协议的细节

进程寻址

主机地址:IP地址
目的主机中指定接收进程的标识符:端口号

应用服务要求

  • 可靠数据传输
  • 吞吐量
  • 定时(时延限制)
  • 安全性

Web和HTTP

  • (Hypertext Transfer Protocol)
  • TCP为HTTP提供可靠数据传输服务

HTTP是无状态协议

  • 当客户端发送HTTP请求时,它必须提供所有必要的信息(如请求方法、URL、头部字段等),服务器根据这些信息来处理请求并发送相应的HTTP响应。
  • 每个HTTP请求都是独立的,服务器在发送响应后,不会保留客户端的任何状态信息,也不会记录客户端的上下文。

HTTP报文格式

请求报文

计网之应用层_第2张图片

HTTP请求报文
请求行 GET /somedir/page.html HTTP/1.1 方法字段、URL字段、HTTP版本字段
首部行 Host:www.someschool.edu 指明对象所在主机
首部行 Connection:close 非持续连接
首部行 User-agent:Mozilla/5.0 指明用户代理,即浏览器类型是Firefox
首部行 Accept-language:fr 希望得到对象的法语版本

方法字段

  • GET:用于请求获取特定资源,通常用于获取网页、图片、文本等静态内容。该方法是幂等的,即多次执行相同的GET请求应该得到相同的结果。实体体为空
  • POST:用于向服务器提交数据,通常用于提交表单数据、上传文件等操作。POST请求可能会引起服务器状态的变化,不是幂等的。
  • PUT:用于向服务器上传新的资源,或者更新现有资源。PUT请求应该是幂等的,即多次执行相同的PUT请求会得到相同的结果。
  • DELETE:用于请求删除指定的资源。DELETE请求应该是幂等的,即多次执行相同的DELETE请求会得到相同的结果。
  • HEAD:与GET方法类似,但只返回响应头部,不返回实际内容。主要用于获取资源的元数据或检查资源是否存在。
  • OPTIONS:用于获取目标资源支持的通信选项。服务器可以返回允许的方法、支持的头部字段等信息。
  • TRACE:用于追踪请求在传输链路上的处理情况。服务器会将接收到的请求原样返回给客户端,用于测试和诊断。
  • CONNECT:用于建立与目标资源的隧道连接,通常用于代理服务器。

条件GET:解决缓存器的对象副本为旧副本的问题

if-modified-since:Wed,9 Sep 2015 09:23:24

响应报文

计网之应用层_第3张图片

HTTP响应报文
状态行 HTTP/1.1 200 OK 协议版本、状态码、相应状态信息
首部行 Connection:close 非持续连接
首部行 Date:Tue,18,Aug,2015 15:44:04 GMT 服务器从文件系统中检索到该对象,将其插入响应报文并发送该响应报文的时间
首部行 Server:Apache/2.2.3(CentOS) 报文由Apache Web服务器产生
首部行 Last-Modified:Tue,18,Aug 2015 15:11:03 GMT 对象创建/最后修改的时间
首部行 Content-Length:6821 被发送对象的字节数
首部行 Content-Type:text/html 实体体的对象是HTML文本
实体体 (data data data data data …) 所请求的对象本身

状态码

1xx(Informational):表示请求已经被接收,继续处理中。

2xx(Success):表示请求已成功处理并得到响应。

  • 200 OK:请求成功,服务器正常返回请求的数据。
  • 201 Created:请求成功,并在服务器上创建了新的资源。
  • 204 No Content:请求成功,但响应不包含任何实体内容。

3xx(Redirection):表示需要进行进一步的操作,以完成请求。

  • 301 Moved Permanently:请求的资源已永久移动到新的URL。
  • 302 Found:请求的资源暂时移动到新的URL。
  • 304 Not Modified:资源未修改,客户端可以使用缓存的版本。

4xx(Client Error):表示客户端发送的请求有错误。

  • 400 Bad Request:通用差错代码,请求无效,服务器无法理解。
  • 401 Unauthorized:请求需要身份验证。
    -403 Forbidden:服务器拒绝请求访问资源。
  • 404 Not Found:请求的资源不存在。

5xx(Server Error):表示服务器在处理请求时发生错误。

  • 500 Internal Server Error:服务器内部错误。
  • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效的响应。
  • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。
  • 505 HTTP Version Not Support:服务器不支持请求报文的HTTP协议版本。

cookie

解决HTTP的无状态协议

计网之应用层_第4张图片

Web缓存

Web缓存器,也称为代理服务器
计网之应用层_第5张图片

电子邮件

SMTP

  • (Simple Mail Transfer Protocol)
  • 一般不使用中间邮件服务器
  • HTTP是拉协议,TCP连接由想接收文件的机器发起;SMTP是推协议
    计网之应用层_第6张图片

DNS域名系统

  • 主机名转换为IP地址
  • 4元组:(Name,Value,Type,生存时间TTL)

计网之应用层_第7张图片
根DNS服务器、顶级域服务器(TLD)、权威DNS服务器
DNS缓存

你可能感兴趣的:(八股前传,网络,tcp/ip,udp)