HTTP协议

目录

http协议的特点

http协议的处理流程

http协议请求信息的组成

http协议的请求方式

使用场景

GET 和 POST 的区别

http协议的响应信息

http协议的状态码

MIME类型


        HTTP是一种用于传输数据的协议(超文本传输协议)是客户端与服务器通信的一种标准。

客户端和服务器都遵循HTTP协议,就能从彼此发送的信息中提取自己想要的数据

http协议的特点

简单使用的   请求-响应模型客户端向服务器发送请求,才能得到服务器的响应信息
无状态服务器不会跟踪客户端的状态信息

客户端和服务器之间,请求/响应完成以后,建立的连接会断开。

服务器会认为每次请求的用户都是新用户,无法区分两次请求的用户是否为同一个用户

短连接占用80端口请求/响应完成后,建立的连接会立即关闭,连接时间很短,这样就可以释放服务器资源,下一次请求需要重新建立TCP连接
长连接http1.1后推出在客户端和服务器之间响应结束后,并不会马上断开,而是会持续一段时间,在该时间内,如果还有链接资源需要下载,则不会重新建立连接,从而提高访问效率

http协议的处理流程

  1. 客户端和服务器 建立连接

  2. 客户端向服务器 发送http请求

  3. 服务器 产生http响应信息

  4. 关闭连接

http协议请求信息的组成

请求行描述请求方式、请求URL路径、http协议版本
请求头以键值对方式描述客户端相关的信息
空行表示请求头和消息体之间的分隔符
消息体(POST)描述客户端请求的表单数据
GET /index.html HTTP/1.1   //请求行,指定请求方法、URL和HTTP协议版本
Host: www.example.com     //请求头,指定请求的主机名
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0  //请求头,指定浏览器的User-Agent信息
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  //请求头,指定客户端能够接受的内容类型及优先级
Accept-Language: en-US,en;q=0.5  //请求头,指定客户端能够接受的自然语言
Accept-Encoding: gzip, deflate   //请求头,指定客户端能够接受的内容编码方式
Connection: keep-alive   //请求头,指定客户端与服务器之间的连接方式
Upgrade-Insecure-Requests: 1  //请求头,指定客户端是否支持HTTPS协议,1表示支持
If-Modified-Since: Tue, 07 Jul 2020 10:00:00 GMT  //请求头,用于实现HTTP缓存,指定上次修改时间
If-None-Match: "etag12345"   //请求头,用于实现HTTP缓存,指定上次响应的ETag值

http协议的请求方式

GETPOST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT

GET用于获取资源。GET请求会向服务器请求指定的资源,并返回响应。GET请求可以在URL中传递参数,但是参数会暴露在URL中,不适合传递敏感信息
POST用于提交数据。POST请求会向服务器提交指定的数据,并返回响应。POST请求可以在请求正文中传递参数,适合传递大量或者敏感的信息
PUT用于更新资源。PUT请求会向服务器上传指定的资源,如果资源已经存在,会将其更新。PUT请求可以用于创建资源,但是不常用
DELETE用于删除资源。DELETE请求服务器删除指定的资源。例如文件、数据库记录等等

使用场景

GET

  1. 用户在浏览器中,输入URL路径访问服务器资源

  2. 用户点击超链接

  3. 用户提交表单,表单的method属性为GET,或不写

POST

<form action="" method= "post">

GET 和 POST 的区别

GET POST
流格式的区别只有请求行、请求头、空行,表单数据附加在URL后面有请求头、请求行、空行、消息体,在消息体中描述表单数据
传输性能的区别只能传输小文本数据;由于URL中会附加我们的表单数据,所以在浏览器中会显示表单数据可以传输大小文本数据,也可以传输二进制数据;由于表单数据由消息体描述,所以,在浏览器中不会显示表单数据
用途的区别资源的查找 比如{ 请求静态页面或图形文件 }数据的传输 比如{ 发送大数据、上传文件、发送密码或其他保密信息的时候 }

http协议的响应信息

状态行包括HTTP版本、状态码和状态描述
响应头键值对方式描述服务器相关信息 包括服务器信息、内容类型、内容长度、缓存控制等信息
空行用于分隔响应头和消息体
消息体即响应的内容,例如网页HTML代码、图片、音频、视频等
HTTP/1.1 200 OK    //响应行,指定HTTP协议版本、状态码和状态信息
Date: Tue, 07 Jul 2020 10:30:00 GMT  //响应头,指定响应的日期和时间
Content-Type: text/html   //响应头,指定响应的内容类型为text/html
Content-Length: 1234   //响应头,指定响应消息体的长度为1234字节
Server: Apache/2.4.18 (Ubuntu)   //响应头,指定响应的服务器类型和版本号
Last-Modified: Tue, 07 Jul 2020 09:00:00 GMT  //响应头,用于实现HTTP缓存,指定上次修改时间
ETag: "etag12345"   //响应头,用于实现HTTP缓存,指定本次响应的ETag值
Accept-Ranges: bytes   //响应头,指定服务器是否支持分块传输和部分请求
Connection: close   //响应头,指定服务器与客户端之间的连接方式
<!DOCTYPE html>   //消息体,HTML页面的文档类型声明
<html>   //消息体,HTML页面的开始标签
<head>   //消息体,HTML页面的头部
  <title>Example Page</title>   //消息体,HTML页面的标题
</head>   //消息体,HTML页面的头部结束标签
<body>   //消息体,HTML页面的正文
  <h1>Welcome to Example Page</h1>   //消息体,HTML页面的一级标题
  <p>This is an example page.</p>   //消息体,HTML页面的段落内容
</body>   //消息体,HTML页面的正文结束标签
</html>   //消息体,HTML页面的结束标签

http协议的状态码

        HTTP协议的状态码是指服务器向客户端返回的响应状态码,用于表示服务器对请求的处理结果,常见的状态码有以下几种:

1xx(信息性状态码)表示请求已被接收,需要继续处理
2xx(成功状态码)表示请求已成功被服务器接收、理解、并接受
3xx(重定向状态码)表示需要客户端进一步操作才能完成请求
4xx(客户端错误状态码)表示客户端请求有语法错误或请求无法实现
5xx(服务器错误状态码)表示服务器未能完成显然有效的请求

常见的状态码:

  • 401 nauthorized:没有进行身份验证或验证未通过

  • 403 Forbidden:请求被服务器拒绝

  • 404 Not Found:请求的资源不存在

MIME类型

        MIME类型用于标识HTTP请求和响应中传输的文件类型。服务器产生响应信息时,告诉客户端发送的是什么数据类型,客户端会根据不同的MIME类型,来决定如何解析响应信息

常用的

text/htmlHTML文档
text/xmlXML格式
image/jpegJPEG图像文件
application/jsonJSON数据格式
video/mp4MP4视频文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BroRiver

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值