找工作室的网站,深圳小程序app开发,wordpress 图片服务器配置,H5网站整站1. 什么是HTTP协议
HTTP超文本传输协(Hyper Text transfer protocol)#xff0c;是一种用于用于分布式、协作式和超媒体信息系统的应用层协议。它于1990年提出#xff0c;经过十几年的使用与发展#xff0c;得到不断地完善和扩展。HTTP 是为 Web 浏览器与 Web 服务器之间的…1. 什么是HTTP协议
HTTP超文本传输协(Hyper Text transfer protocol)是一种用于用于分布式、协作式和超媒体信息系统的应用层协议。它于1990年提出经过十几年的使用与发展得到不断地完善和扩展。HTTP 是为 Web 浏览器与 Web 服务器之间的通信而设计的但也可以用于其他目的。客户端与服务器通信时传输的内容称为报文HTTP协议就是规定了报文的格式。客户端发送给服务器的称为请求报文服务器发送给客户端的称为响应报文。
1.1 发展历程
HTTP/0.9 蒂姆伯纳斯李是一位英国计算机科学家也是万维网的发明者。他在 1989 年创建了单行 HTTP 协议。它只是返回一个网页。这个协议在 1991 年被命名为 HTTP/0.9。 HTTP/1.0 1996年HTTP/1.0发布支持三种请求方式GETPOST和HEAD。HTTP/1.0相对于HTTP/0.9的改进 每个请求都附加了HTTP版本信息。在响应开头附加状态码。请求和响应都包含HTTP报文头。能够传输HTML文件以外的文档。 不是官方标准。 HTTP/1.1 HTTP第一个标准化版本HTTP/1.1于1997年初发布支持7种请求方式GETPOSTHEADPUTDELETETRACE和OPTIONS。HTTP/1.1是HTTP/1.0的增强 一个IP地址可以有多个虚拟主机通过Host头域可以访问一个IP地址下的不同网站。持久连接和流水线连接允许web浏览器通过单个长连接发送多个请求。缓存支持节省了宽带并使响应速度更快。如果请求的资源已经缓存了那么就会直接从本地加载该资源不需要再从服务器获取 。 出现了HTTPS是使用SSL/TLS进行安全加密通信的HTTP的安全版本。 HTTP/2 由IETF在2015年发布。HTTP/2旨在提高Web性能减少延迟增加安全性使Web应用更加快速、高效和可靠。多路复用允许同时发送多个请求和响应。这样可以减少延迟提高效率和网络吞吐量。二进制传输使用二进制协议可以更快地解析更有效地传输数据减少了传输过程中的开销和延迟。使用HPACK算法对HTTP头部进行压缩减少了头部传输的数据量从而减少了网络延迟。服务器推送支持服务器推送允许服务器在客户端请求之前推送资源以提高性能。安全性默认使用TLS加密传输数据提高了安全性。兼容HTTP/1.1可以与HTTP/1.1共存服务器可以同时支持HTTP/1.1和HTTP/2。如果客户端不支持HTTP/2服务器可以使用HTTP/1.1。 HTTP/3 于 2021 年 5 月 27 日发布 , HTTP/3 是一种新的、快速、可靠且安全的协议适用于所有形式的设备。 HTTP/3 没有使用 TCP而是使用谷歌在 2012 年开发的新协议 QUIC。HTTP/3 是继 HTTP/1.1 和 HTTP/2之后的第三次重大修订。HTTP/3 带来了革命性的变化以提高 Web 性能和安全性。设置 HTTP/3 网站需要服务器和浏览器支持。目前谷歌云、Cloudflare和Fastly支持 HTTP/3。Chrome、Firefox、Edge、Opera 和一些移动浏览器支持 HTTP/3。
1.2 HTTP协议的会话方式 1.3 在浏览器中通过开发者工具抓取请求响应报文 2. 请求报文和响应报文 2.1 请求报文
请求报文格式 请求行 请求方式资源路径协议版本 请求头请求空行请求体浏览器提交给服务器的数据。
2.1.1 GET方法
请求参数在url中携带所以没有请求体也没有请求空行。请求参数拼接在url后使用?与url连接参数之间通过连接。由于参数在url中携带所以有大小限制地址栏数据一般限制为4kb并且只能携带纯文本。没有请求体所以封装和解析速度快效率高。浏览器的默认提交都是GET请求比如地址栏按回车超链接表单的默认提交方式。
2.1.2 POST方法
POST方法有请求体。请求数据在请求体中携带没有大小和内容限制。只能使用POST请求上传文件。相对GET方法比较安全因为提交的数据不在url中明文显示。效率比GET方法低。 请求体
2.2 响应报文
响应报文格式 响应行 协议版本状态码状态码描述 响应头响应空行响应体 2.2.1 响应状态码
状态码状态码英文描述中文含义1**100Continue继续。客户端应继续其请求。101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议例如切换到HTTP的新版本协议。2**200OK请求成功。一般用于GET与POST请求。201Created已创建。成功请求并创建了新的资源。202Accepted已接受。已经接受请求但未处理完成。203Non-Authoritative Information非授权信息。请求成功。但返回的meta信息不在原始的服务器而是一个副本。204No Content无内容。服务器成功处理但未返回内容。在未更新网页的情况下可确保浏览器继续显示当前文档。205Reset Content重置内容。服务器处理成功用户终端例如浏览器应重置文档视图。可通过此返回码清除浏览器的表单域。206Partial Content部分内容。服务器成功处理了部分GET请求。3**300Multiple Choices多种选择。请求的资源可包括多个位置相应可返回一个资源特征与地址的列表用于用户终端例如浏览器选择。301Moved Permanently永久移动。请求的资源已被永久的移动到新URI返回信息会包括新的URI浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。303See Other查看其它地址。与301类似。使用GET和POST请求查看。304Not Modified未修改。所请求的资源未修改服务器返回此状态码时不会返回任何资源。客户端通常会缓存访问过的资源通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。305Use Proxy使用代理。所请求的资源必须通过代理访问。306Unused已经被废弃的HTTP状态码。307Temporary Redirect临时重定向。与302类似。使用GET请求重定向。4**400Bad Request客户端请求的语法错误服务器无法理解。401Unauthorized请求要求用户的身份认证。402Payment Required保留将来使用。403Forbidden服务器理解请求客户端的请求但是拒绝执行此请求。404Not Found服务器无法根据客户端的请求找到资源网页。通过此代码网站设计人员可设置您所请求的资源无法找到的个性页面。405Method Not Allowed客户端请求中的方法被禁止。406Not Acceptable服务器无法根据客户端请求的内容特性完成请求。407Proxy Authentication Required请求要求代理的身份认证与401类似但请求者应当使用代理进行授权。408Request Time-out服务器等待客户端发送的请求时间过长超时。409Conflict服务器完成客户端的 PUT 请求时可能返回此代码服务器处理请求时发生了冲突。410Gone客户端请求的资源已经不存在。410不同于404如果资源以前有现在被永久删除了可使用410代码网站设计人员可通过301代码指定资源的新位置。411Length Required服务器无法处理客户端发送的不带Content-Length的请求信息。412Precondition Failed客户端请求信息的先决条件错误。413Request Entity Too Large由于请求的实体过大服务器无法处理因此拒绝请求。为防止客户端的连续请求服务器可能会关闭连接。如果只是服务器暂时无法处理则会包含一个Retry-After的响应信息。414Request-URI Too Large请求的URI过长URI通常为网址服务器无法处理。415Unsupported Media Type服务器无法处理请求附带的媒体格式。416Requested range not satisfiable客户端请求的范围无效。417Expectation Failed服务器无法满足Expect的请求头信息。5**500Internal Server Error服务器内部错误无法完成请求。501Not Implemented服务器不支持请求的功能无法完成请求。502Bad Gateway作为网关或者代理工作的服务器尝试执行请求时从远程服务器接收到了一个无效的响应。503Service Unavailable由于超载或系统维护服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中。504Gateway Time-out充当网关或代理的服务器未及时从远端服务器获取请求。505HTTP Version not supported服务器不支持请求的HTTP协议的版本无法完成处理。