HTTP协议

1. 什么是HTTP

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

2. HTTP协议的特点

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

3.HTTP协议通信流程

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

4.HTTP 1.1

1.在一个TCP连接上可以传送多个HTTP请求和响应
2.多个请求和响应过程可以重叠进行
3.增加了更多的请求头和响应头
4.Connection报头来控制(控制连接时间)

5. 请求报文和响应报文

5.1 HTTP请求报文

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

  1. 请求行: 请求方法 / 地址URL协议 / 版本
  2. 请求头(Request Header),以键值对存在
  3. 空行 (请求行和请求头已经结束,以下就是请求正文)
  4. 请求正文

5.2 HTTP响应报文

HTTP响应报文与HTTP请求报文相似:

  1. 状态行(HTTP/1.1 200 OK )
  2. 响应头(Response Header)
  3. 空行
  4. 响应正文

6. 常见的状态码

数字中的第一位指定了响应的类别,后两位无分类,响应类别一共有5种:
在这里插入图片描述
各类别常见状态码:
2xx (3种)
200 OK
表示从客户端发送给服务器的请求被正常处理并返回;
204 No Content
表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回);
206 Patial Content
表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
3xx (5种)
301 Moved Permanently
永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;
302 Found
临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;
301与302的区别:前者是永久移动,后者是临时移动(之后可能还会更改URL)
303 See Other
表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源;
302与303的区别:后者明确表示客户端应当采用GET方式获取资源
304 Not Modified
表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码;
307 Temporary Redirect
临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况);
4xx (4种)
400 Bad Request

表示请求报文中存在语法错误;
401 Unauthorized
未经许可,需要通过HTTP认证;
403 Forbidden
服务器拒绝该次访问(访问权限出现问题)
404 Not Found
表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用;
5xx (2种)
500 Inter Server Error
表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;
503 Server Unavailable
表示服务器暂时处于超负载或正在进行停机维护,无法处理请求;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值