【网络】HTTP协议

1. 什么是HTTP协议

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

2. 消息结构

HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。

一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。

一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。

HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
在这里插入图片描述在这里插入图片描述
2.1 首行

2.1.1 请求首行

  • 三要素:请求方法、URL、协议版本,且三要素以空格间隔,并以 \r \n作为结尾
  • 请求方法(多种):GET(向服务器请求html数据) / POST(向服务端提交数据) / HEAD / PUT / DELETE / OPTION / PATCH
    • GET:没有正文的,提交数据通过url中的查询字符串完成;
    • POST:提交表单数据到正文中,正文没有数据限制;
    • HEAD:获取资源,没有正文,但是head在获取资源的时候时不要正文的,只获取头部信息;
  • URL(统一资源定位符):长度是有限制的1k, 4k
  • 协议:HTTP/1.1 ( 0.9 -> 1.0 -> 1.1 -> 2 )

HTTP协议发展历史

2.1.2 响应首行

  • 以空格进行间隔包含三大要素:协议版本、响应状态码、状态码描述 以 \r \n 作为结尾;
  • 响应状态码:五大类:1xx / 2xx / 3xx / 4xx / 5xx;
  • 1xx:描述信息;2xx:请求正确处理;3xx:重定向;4xx:客户端错误;5xx:服务端错误;
    在这里插入图片描述
    在这里插入图片描述
    2.2 头部
  • 头部中都是一个个key(键值对): val形式的键值对,并且键值对之间以 \r \n 作为间隔(每一键值对都以 \r \n 作为结尾);
  • key:val \r \n。

【HTTP常见的header】

  • Content-Type:正文数据类型(text/html等);
  • Content-Length:Body的长度;
  • Host:客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  • User-Agent:声明用户的操作系统和浏览器版本信息;
  • Referer:当前页面是从哪个页面跳转过来的;
  • Location:搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
  • Cookie:用于在客户端存储少量信息,通常用于实现会话(session)的功能;

详细头部信息

2.3 空行

  • \r \n 间隔头部与正文,接受http数据的时候,头部的结尾就是两个连续的\r \n \r \n。

2.4 正文

  • 客户端提交给服务端的数据/服务端响应给客户端的数据。

适合小白学习HTTP

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值