欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 第一章 HTTP

第一章 HTTP

2024/10/25 14:23:19 来源:https://blog.csdn.net/qushaming/article/details/142418689  浏览:    关键词:第一章 HTTP

目录

一、HTTP简介

1.1. 概述

1.2. HTTP与TCP的区别

 二、HTTP迭代版本

三、HTTP请求头

四、HTTP响应

五、请求头中的请求方式


一、HTTP简介

1.1. 概述

        超文本传输协议(Hypertext Transfer Protocol,HTTP),用于在客户端和服务端之间传输超文本文档(视频、图片、位置数据等)和其他资源。其位于TCP/IP模型的应用层,依赖于TCP提供的可靠数据传输服务。是一个无状态的简单的请求-响应协议,每次请求和响应后不保留任何状态。HTTP定义了数据的格式,如客户端请求和服务端响应头、URL结构、编码格式等。

1.2. HTTP与TCP的区别

HTTP

TCP

定义

以TCP为基础,用于在客户端和服务端之间传输超文本文档(视频、图片、位置数据等)和其他资源

负责在网络上可靠地传输数据。

TCP/IP模型层次

应用层,定义Web通信的规则

传输层,提供底层的数据传输服务

连接方式

无状态的连接,每次请求和响应之后不保留任何状态。

有状态的长连接,面向连接的协议,通过三次握手建立连接

数据传输方式

定义了数据的格式,如请求和响应头、URL结构和编码方式等

提供字节流服务,保证数据传输的顺序和可靠型

应用场景

用于在客户端和服务端之间传输超文本文档(视频、图片、位置数据等)和其他资源

支持各种不同的应用,包括但不限于Web通信

备注

Http协议是建立在TCP协议基础之上的。当浏览器需要从服务器 获取网页数据的时候,会发出一次http请求。Http通过TCP建立起一个到服务器的通道。 当一个网页完成之后,客户端和服务器端之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个页面时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件中设定这个时间

 二、HTTP迭代版本

  • HTTP 0.9

  • 简单请求方法,仅限于文字传输的无序协议

  • HTTP 1.0

  • 支持0.9版本的简单请求方法和包含客户端HTTP版本的完整GET请求。面向事务的应用层协议,广泛应用于Web浏览器和服务器。

  • HTTP 1.1

  • 双方规定了连接方式和连接类型,但并没有过多考虑到通信连接的速率和效率。

  • HTTP 2.0

  • HTTP2.0的前身是HTTP1.0和HTTP1.1。虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范十分庞大。网络协议新版本并不会马上取代旧版本。实际上,HTTP 1.0和HTTP1.1在之后很长的一段时间内一直并存,这是由于网络基础设施更新缓慢所决定的。

  • HTTP 3.0

  • 与之前依赖于成熟的TCP的版本不同,HTTP3.0使用QUIC,一种基于UDP的多路传输协议。HTTP3.0具有更低的延迟和更快的加载速度。

  • 三、HTTP请求头

客户端——>请求——>服务端

HTTP协议的一部分,用于在客户端和服务端之间传递附加信息(包含了请求、客户端环境或请求的上下文等信息)

accept: application/json, text/javascript, */*; q=0.01 浏览器可接受的MIME类型

accept-encoding: gzip, deflate, br, zstd 浏览器能够进行解码的数据编码方式

accept-language: zh-CN,zh;q=0.9 浏览器希望的语言类型

cookie: PHPSESSID=bdq4ccqp17svf9dp87onjaov2n; 最重要的请求头之一

Request URL: https://blog.51cto.com/blog/user-stat?id=5342541 请求的资源地址

Request Method: GET 请求方法

Status Code: 200 OK 服务端响应请求的状态

Remote Address: 183.131.117.207:443 请求的服务IP地址

Referrer Policy: no-referrer-when-downgrade

四、HTTP响应

服务端——响应——客户端

指定了客户端请求服务端获得什么样的响应

cache-control: must-revalidate, no-cache, no-store 缓存控制

content-encoding: gzip 响应内容编码格式

content-type: application/json; charset=UTF-8 响应内容类型

date: Fri, 06 Sep 2024 05:45:38 GMT 响应时间

eo-cache-status: MISS

eo-log-uuid: 17962474739074623387

expires: Thu, 19 Nov 1981 08:52:00 GMT

load-balancing: blog

origin-agent-cluster: ?0

五、请求头中的请求方式

GET:请求指定的资源,多次执行相同的GET请求应该确保幂等/产生相同的结果。

POST:向指定的资源提交数据,以便根据所提供的数据创建/更新资源。POST请求不是幂等的,每次执行相同的POST请求可能会产生不同的结果。

PUT:此方法用于完整地更新指定的资源。由于PUT请求是幂等的,多次执行相同的PUT请求应该产生相同的结果。

DELETE:此方法用于删除指定的资源。

HEAD:此方法与GET方法类似,只是服务器在响应中只返回HTTP头部,而不返回实际的数据。这用于检查资源的元数据。

OPTIONS:此方法用于获取指定的资源所支持的通信选项。这可以用于CORS(跨源资源共享)检查。

PATCH:此方法用于对资源进行部分更新。

六、响应状态码

  1. 信息响应(100-199)
  2. 成功响应(200-299)
  3. 重定向(300-399)
  4. 客户端错误(400-499)
  5. 服务器错误(500-599)

状态码

信息

具体描述

200

OK

请求已成功,并且返回了请求的资源。

204

No Content

请求已成功处理,但没有内容返回。

206

Partial Content

服务器已经完成了部分GET请求。

301

Moved Permanently

请求的资源已被永久移动到新的URL。

302

Found

请求的资源临时移动到新的URL。

304

Not Modified

自上次请求后,请求的资源未修改过。

400

Bad Request

服务器无法处理请求,因为客户端的请求语法错误。

401

Unauthorized

请求需要用户验证。

403

Forbidden

服务器拒绝请求。

404

Not Found

服务器无法找到请求的资源。

500

Internal Server Error

服务器遇到了意料之外的情况,导致它无法完成请求。

503

Service Unavailable

服务器暂时无法处理请求,可能是因为过载或维护。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com