HTTP获取服务器资源步骤

  • 浏览器从URL中解析出服务器的主机名

  • 浏览器将服务器的主机名转换成服务器的IP地址

  • 浏览器将端口号(如果有的话)从URL中解析出来

  • 浏览器建立一条与web服务器的TCP连接

  • 浏览器向服务器发送一条HTTP请求报文

  • 服务器向浏览器回送一条HTTP响应报文

  • 关闭连接,浏览器显示文档

状态码分类与常见状态码

状态码分类

整体范围 分类
1** 信息提示,请求已被接受,需要继续处理
2** 成功,请求已成功被服务器接收、理解、接受
3** 重定向,需要客户端采取进一步的操作
4** 客户端错误
5** 服务器错误

常见状态码

  • 200——OK,请求成功

  • 301——Moved Permanently,资源(网页等)被永久转移到其他URL

  • 302——Found,307——Temporary Redirect,临时重定向,请求的文档被临时移动别处

  • 304——Not Modified,未修改,表示客户端缓存的版本是最近的

  • 401——Unauthorized,请求要求用户的身份认证

  • 403——Forbidden,禁止,服务器理解客户端请求,但是拒绝处理此请求,通常是权设置所致

  • 404——Not Found,请求的资源(网页等)不存在

  • 500——Internal Server Error——内部服务器错误

  • 502——Bad Gateway,充当网关或代理的服务器从远端服务器接收到了一个无效的请求

  • 504——Gateway Time-out,充当网关或代理的服务器,未及时从远端服务器获取请求

网络分层模型

OSI七层模型

开放式系统互联网通信参考模型——OSI, Open System Interconnection

  • 应用层(Application Layer)

    为应用程序提供服务并管理应用程序之间的通信(SMTP, HTTP, FTP等)

  • 表示层(Presentation Layer)

    负责数据的格式转换、加密与解密、压缩与解压

  • 会话层(Session Layer)

    负责建立、管理和断开通信连接,实现数据同步

  • 传输层(Transport Layer)

    为数据提供可靠的或不可靠的端到端传输,同时处理传输错误,控制流量(TCP, UDP)

  • 网络层(Network Layer)

    负责地址管理,路由选择和拥塞控制(IP协议)

  • 数据链路层(Data Link Layer)

    将数据分割成帧,并负责MAC寻址、差错检验和信息纠正(以太网)

  • 物理层(Physical Layer)

    管理最基础的传送通道,建立物理连接,并提供物理链路所需的机械、电气、功能和过程设施

在OSI模型中,发送方从应用层到物理层依次传输,接收方从物理层到应用层一次接收

五层模型

  • 应用层

    支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信,主要的协议包括:HTTP、FTP、Telnet、SMTP、pop3等

  • 传输层

    负责为信源和信宿提供应用程序进程间的数据传输服务,这一层上主要定义了两个传输协议,传输控制协议TCP和用户数据报协议UDP

  • 网络层

    负责将数据报独立地从信源发送到信宿,主要解决路由选择、拥塞控制和网络互联等问题

  • 数据链路层

    负责将IP数据报封装成合适在物理网络上传输的帧格式并传输,或将从物理网络接收到的帧解封,取出IP数据报交给网络层

  • 物理层

    负责将比特流在结点间传输,即负责物理传输。该层的协议既与链路有关也与传输介质有关