OSI模型、HTTP协议

面试被问到:HTTP请求报文包含什么?好久没看基础知识,只知道有请求头、响应头、请求内容、相应内容、状态码。一时语塞,模糊的记忆中涌现了TCP和HTTP的知识,有点混乱,再回顾一下。

TCP/IP 与 HTTP 的关系?

TCP/IP(传输控制协议/网际协议)是传输层的协议,主要解决数据如何在网络中传输

TCP/IP不仅仅指的是这两个协议,而是由FTP、SMTP、UDP、TCP、IP等多个协议构成的协议簇。由于TCP协议、IP协议最具有代表性,所以被称为TCP/IP协议。

HTTP(超文本传输协议)应用层中的协议,主要解决如何包装数据

小结

TCP协议对应于传输层,而HTTP协议对应于应用层。Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。

TCP请求报文

主要有:源端口号(16位),目标端口号(16位),序号(32位),确认序号(32位),校验和(16位),紧急指针(16位),数据体

  • 包的序号:为了解决乱序问题,用来标记数据先来后到的顺序。
  • 确认序号:发出去的包需要确认操作,这样才能知道目标端是否收到,没有收到应该重新发送包,保证不丢包的问题。
  • 状态位:SYN发起一个链接,ACK回复,RST重新连接,FIN结束连接。因为TCP是面向连接的,是全双工的,因此需要双端维护连接的状态。

Http请求报文

主要分为:请求报文和响应报文

请求报文:请求行、请求头、请求体

  • 请求行:请求方法,如Get、Post、Delete、Put、Head等;
    URL地址,与请求头的Host组成完成的请求URL;
    协议版本。

  • 请求头:包含若干属性,如Host:主机:端口号;Range:请求体字节范围;Cookie;Referer:引用来源

  • 请求体:请求参数,通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。

响应报文:响应行、响应头、响应体

  • 响应行:协议版本、状态码
  • 响应头:响应报文头有多个属性,如服务版本、数据格式、日期
  • 响应体:真正的数据,从数据库取出的真实数据。一般是Json格式。

OSI七层模型

OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

TCP/IP四层模型:网络接口层、网络层、传输层、应用层

应用层 ==> 应用层、表示层、会话层、传输层

OSI 功能 TCP/IP协议族
应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,RIP,Telnet
表示层 数据格式化,代码转换,数据加密
会话层 控制应用程序之间会话能力;如不同软件数据分发给不同软件 ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
传输层 端到端传输数据的基本功能 TCP、UDP
网络层 定义IP编址,定义路由功能;如不同设备的数据转发 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 定义数据的基本格式,如何传输,如何标识 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802
posted @ 2021-08-25 19:46  Leejk  阅读(192)  评论(0编辑  收藏  举报