导航菜单

Http协议

陆兴东 2026-04-09 12 浏览 其他

HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP协议用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

一、概述

HTTP是一种用作获取诸如 HTML 文档这类资源的协议。它是web上进行任何数据交换的基础,同时也是一种客户端-服务器(c/s)协议。

二、工作原理

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。

1.客户端连接到Web服务器

一个http客户端,通常是浏览器,与Web服务器的http端口(默认为80)建立TCP套接字连接。

2.发送HTTP请求

通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求权报文由请求行、请求头部、空行和请求数据四部分组成。

3.服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源副本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据四部分组成。

4.释放TCP连接

若connection模式为close,则服务器主动关闭tcp连接,客户端被动关闭连接,释放tcp连接;若connnection模式为keepalive,则该连接会保持段时间,在该时间内可以继续接受请求。

5.客户端浏览器解析html内容

客户端浏览器首先解析状态行,查看表面请求是否成功的状态码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,饼子啊浏览器端口中显示。

工作原理

早期http协议是一个请求一个响应之后就会断开连接,1.1版本则是等待几秒钟,若用户有后续操作那么还是通过之前的连接通道来收发消息,这样可以节省建立新连接的时间。

三、HTTP请求方法

HTTP/1.1协议中共定义了八种方法(动作)来以不同方式操作指定的资源:

GET

向指定的资源发出显示"请求。使用GET方法应该只用在读取数据,而不应当被用于产生"副作用"的操作中,例如在Web Application中。

HEAD

与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

POST

向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

PUT

向指定资源位置上传其最新内容。

DELETE

请求服务器删除Request-URI所标识的资源。

TRACE

回显服务器收到的请求,主要用于测试或诊断。

OPTIONS

这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用"*"来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

方法名称是区分大小写的。405(Method NotAllowed)资源不支持该请求方法,服务器不能识别请求方法时返回状态码501(Not Implemented)。HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。
GET提交的数据放在请求行里以?分割URL和传输数据,参数之间以&相连,如book?id=1&name=co。

四、HTTP状态码

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):