HTTP协议

HTTP协议

概念

Hyper  Text Transfer Protocol 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个基于请求与响应模式的,无状态的,应用层的协议,运行于TCP协议基础之上.

* 传输协议:定义了客户端和服务器端通信时,发送数据时的格式

特点

  1. 支持客户端(浏览器) / 服务器,模式
  2. 简单快速: 客户端只向服务器发送请求方法和路径,服务器即可响应数据,因而通信数据很快.请求方法常用的有GET,POST等.
  3. 灵活: HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标识.
  4. 无连接: 每次TCP连接只处理一个或多个请求,服务器处理完客户端的请求后,即断开连接.采用这种方式可以节省传输时间
    1. HTTP 1.0版本是一个请求响应之后,直接断开连接,称为短连接
    2. HTTP 1.1版本不是响应之后之间断开,而是等几秒钟,这几秒钟内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了几秒钟之后没有发送新的请求,就会断开连接,称为长连接.
  5. 无状态: HTTP协议是无状态协议.
    1. 无状态是指协议对于事务处理没有记忆能力

HTTP协议通信流程

  1. 客户和服务器建立连接(三次握手)
  2. 客户向服务器发送请求
  3. 服务器接收请求,并根据请求返回相应的文件作为应答
  4. 客户与服务器关闭连接(四次挥手)

HTTP原理

请求消息数据格式

当浏览器向Web服务器发出请求时,它向服务器传送一个数据块,也就是请求信息(请求报文),HTTP请求信息由4个部分组成:

1.请求行

格式: 请求方式  请求url  请求协议/版本

  • 请求方式
    • GET : 1. 请求参数在请求行中,在url后 ;  2. 请求的url长度有限制 ; 3. 不太安全
    • POST : 1. 请求参数在请求体中 ;  2. 请求的url长度没有限制 ; 3. 相对安全

2.请求头(客户端浏览器告诉服务器一些信息)

格式: 请求头名称 : 请求头值 

* 常见的请求头:

  1. User-Agent: 
    1. 浏览器告诉服务器,我访问你使用的浏览器版本信息 ; 
    2. ​​​​​​​可以在服务器端获取该头的信息,解决浏览器的兼容性问题
  2.  Referer :  告诉服务器,我(当前请求)从哪里来
    1. 作用:
      1. ​​​​​​​ 防盗链 
      2. .统计工作

3.请求空行(用于分割POST请求的请求头和请求体)

4.请求体(封装POST请求信息的请求参数)

响应消息数据结构(服务器端发送给客户端的数据)

1. 响应行

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

1.2 响应状态码: 服务器告诉客户端浏览器本次请求与响应的状态

HTTP状态码 (来源于百度百科): https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin

2. 响应头

 格式: 头名称 : 值

 常见响应头 :

  • Content - Type: 服务器告诉客户端本次响应体数据格式以及编码格式
  • Content - disposition: 服务器告诉客户端以什么格式打开响应体数据 

3. 响应空行

4. 响应体

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值