HTTP 协议详解


HTTP

1、简介

HTTP的全称是Hyper Text Transfer Protocol,即超文本传输协议。它定义了浏览器服务器通信时发送数据的格式。
在这里插入图片描述

如上图所示,浏览器发送请求到服务器,服务器处理完成之后发送回应给浏览器。请求和响应是成对出现的,是一对一的关系。

HTTP有以下四个特点:

  • 它是基于TCP/IP体系的,具有安全、可靠的特点
  • HTTP的默认端口是80
  • 基于请求、响应模型的
  • 它是无状态协议,每次请求相互独立,不能交互数据

2、请求

HTTP规定的请求数据格式有:请求行、请求头、请求空行和请求体。以下分别介绍。

1)请求行

请求方式有如下格式:

请求方式 请求URL 请求协议/版本 

比如:

GET http:localhost/login.html HTTP/1.1

HTTP的请求方式有七种,最常用的是GETPOST

GET请求方式有以下特点:

  • 请求参数在请求行后,也就是说在url
  • 请求的url长度有限
  • get相对于post来说,它不太安全,因为传输的数据在url

POST请求方式有以下特点:

  • 请求参数在请求体
  • url长度无限制
  • POST比较安全,因为传输的数据在请求体中(其实点开F12都能看见)

2)请求头

请求头是以键值对的形式出现的:请求头名称:请求头值

常见的请求头如下表所示:

请求头解释
HOST代表主机
User-Agent浏览器告诉服务器,当前浏览器的版本信息
主要解决浏览器间的兼容问题
Accept告诉服务器,接收响应的数据格式
Accept-Language浏览器所支持的语言环境
Accept-Encoding压缩格式
Connetion数据通路是否一直激活
Referer告诉服务器,当前请求从哪里来?

Referer的作用有防盗链做统计工作

3)请求空行

就是一个空行,用来分隔请求头和请求体

4)请求体(正文)

请求体又叫请求正文,这个部分用来封装POST请求的消息


3、响应

HTTP规定的响应数据有响应行、响应头、响应空行、响应体(正文)

1)响应行

响应行的格式是这样的:

协议/版本 响应状态码 状态码描述

比如:

HTTP/1.1 200 OK

响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。状态码都是3位数,分别有以下五类:

  • 1xx:表示服务器没有完全接收到来自客户端的信息,等待一段时间后,发送1xx
  • 2xx:表示成功,代表状态码有200
  • 3xx:重定向,代表状态码有302(重定向)、304(访问缓存)
  • 4xx:客户端错误,代表有404表示路径没有对应的资源,405请求方式没有对应的doxxxx方法
  • 5xx:服务器错误,代表有500服务器内部出现异常

2)响应头

他的格式也是键值对的方式,格式是头名称:值

常见的响应头有:

  • Content-Type:服务器告诉客户端本次响应体的数据格式以及编码格式
  • Content-disposition:服务器告诉客户端以什么格式打开响应体数据
    值有:in-line:默认值,在当前页面打开;attachment表示以附件的形式打开响应体,一般用于下载

3)响应空行

就是一个空行,用来分隔响应头和响应体

4)响应体(正文)

响应体又叫响应正文,这个部分用来传输真实数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值