总结HTTP协议详解

Posted AI_huihui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结HTTP协议详解相关的知识,希望对你有一定的参考价值。

概述

什么是协议,协议就像是我们租房或者工作时所签订的合同,就是事先说明的一种规范,约定,标准 。


HTTP协议(HyperText Transfer Protocol):又称超文本传输协议,客户端(浏览器端)与WEB服务器端之间的交互协议。当浏览器和服务器进行数据交换时,html文件、图片、CSS、JS等都是基于HTTP协议进行交互传输的。

HTTP协议目前使用的基本都是1.1版本

(版本详情见:http协议各版本差异_gcs的博客-CSDN博客_http协议版本

特点:通常是基于 B/S 结构软件的;  无连接:浏览器向服务器发送一次请求,服务器响应一次,链接就结束,这样可以节省传输的时间,现今大多数服务器支持 Keep-Alive 功能,使用服务器支持长连接;  无状态:协议对于事务的处理是没有记忆的,服务器不能记住哪个浏览器被访问过,服务器不知道客户端是什么状态,即客户端发送HTTP请求后,服务器根据请求给我们发送数据,发送完毕后并不会纪录信息,但使用 cookie 机制可以保持 session ,解决此问题。


1.请求和响应

HTTP协议主要分为两大部分: 请求: 访问服务器的任何一个文件都是一次请求 响应: 服务器处理请求,将结果返回给浏览器。

 HTTP请求消息:由于 HTTP 协议属于客户端浏览器和服务器之间的通信协议。因此,客户端发起的请求叫做HTTP 请求,客户端发送到服务器的消息,叫做 HTTP请求消息,又叫HTTP请求报文

请求消息由请求行、请求头部、空行和请求体四部分组成。

  1. 请求行:
    由请求方式、URL和HTTP协议版本三部分组成,它们之间用空格隔开。
  2. 请求头部(header):
    由多行 键/值对 组成,每行的键和值之间用英文的冒号分隔,用来描述客户端的基本信息,从而把客户端相关的信息告知服务器。
  3. 空行:
    最后一个请求头字段的后面是一个空行,通知服务器请求头部至此结束。(请求消息中的空行,用来分隔请求头部与请求体)。
  4. 请求体:
    请求体中存放的,是要通过 POST 方式提交到服务器的数据。(注意:只有POST才有请求体,GET没有)

HTTP响应消息:响应消息就是服务器响应给客户端的消息内容,也叫作响应报文。

由状态行、响应头部、空行和响应体四部分组成。

  1. 状态行
  2. 响应头部:用来描述服务器的基本信息,由多行 键/值对 组成,每行的键和值之间用英文的冒号分隔。
  3. 空行:响应消息中的空行,用来分隔响应头部与响应体。
  4. 响应体:响应体中存放的,是服务器响应给客户端的资源内容。

2.HTTP请求方法

属于 HTTP 协议中的一部分,请求方法的作用是:用来表明要对服务器上的资源执行的操作

3.HTTP响应状态码

用来标识响应的状态。

响应状态码会随着响应消息一起被发送给客户端浏览器,浏览器根据服务器返回的响应状态码,就能知道这次HTTP请求结果是否成功。

状态代码由三个十进制数字组成,第一个十进制数字定义了响应的状态码的类别,后两个数字用来对状态码进行细分。,共分五种类别:
1xx:指示信息–表示请求已接收,继续处理(实际开发很少遇到)
2xx:成功–表示请求已被成功接收、理解、接受并进行处理

  • 200  OK  请求成功。一般用于 GET 与 POST 请求
  • 201  Created  已创建。成功请求并创建了新的资源,通常用于 POST 或 PUT 请求

3xx:表示服务器要求客户端重定向–要完成请求必须进行更进一步的操作

  • 301  Moved Permanently  永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
  • 302  Found  临时移动。与301类似。但资源只是临时被移动。客户端继续使用原有URI
  • 304  Not Modified  未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源(响应消息中不包含响应体)。客户端通常会缓存访问过的资源

4xx:表示客户端请求有非法内容,从而导致请求失败

  • 400  Bad Request  1.语义有误,当前请求无法被服务器理解,除非进行修改,否则客户端不应该重复提交该请求   2.请求参数有误
  • 401  Unauthorized  当前请求需要用户验证
  • 403  Forbidden  服务器已经理解请求,但时拒绝执行它
  • 404  Not Found  服务器无法根据客户端的请求找到资源或者网页
  • 408  Request Timeout  请求超时。服务器等待客户端发送的请求时间过长,超时

5xx:服务器端错误–服务器未能实现合法的请求

  • 500  Internal Server Error  服务器内部错误,无法完成请求
  • 501  Not Implemented  服务器不支持该请求方法,无法完成请求。只有GET和HEAD请求方法是要求每个服务器必须支持的,其他请求方法在不支持的服务器上会返回501
  • 503  Service Unavailable  由于超载或系统维护,服务器暂时的无法处理客户端的请求

以上是关于总结HTTP协议详解的主要内容,如果未能解决你的问题,请参考以下文章

http 协议详解

HTTP协议Keep-Alive模式详解和HTTP头字段总结

HTTP协议Keep-Alive模式详解和HTTP头字段总结

HTTP协议详解

HTTP协议经典面试题整理及答案详解

HTTPS协议详解