网站制作结构,短视频seo排名加盟,软件商城官网,北京 房地产 网站建设文章目录 什么是HTTP?URL的结构请求报文结构请求方法GETHEADPOSTPUTDELETETRACEOPTIONSCONNECTPATCH解释 请求头字段 响应报文结构响应状态响应头字段 HTTP会话3次握手无状态协议 什么是HTTP?
HTTP#xff0c;即Hypertext Transfer Protocol(超文本传输协议)
它是一个”请… 文章目录 什么是HTTP?URL的结构请求报文结构请求方法GETHEADPOSTPUTDELETETRACEOPTIONSCONNECTPATCH解释 请求头字段 响应报文结构响应状态响应头字段 HTTP会话3次握手无状态协议 什么是HTTP?
HTTP即Hypertext Transfer Protocol(超文本传输协议)
它是一个”请求-相应“的协议用于客户端和服务器间交换信息
URL的结构
HTTP resources 通过URL来定位 URL即 Uniform Resource Locators(统一资源定位符)
结构如下: –scheme:[//[user:password]host[:port]][/]path[?query][#fragment]
scheme, 方案 指定用于访问资源的协议或方法如http, ftp, mailto, file, data, irc 权限, 包括: 身份验证部分(可选) usernamepassworduser:password host registered name / IP address端口号(可选) 路径 资源在服务器上的相对路径 query, 可选的查询字符串 包含资源的附加参数或信息 fragment(可选,片段标识符) 指向资源的特定部分#引入
例子: http://www.example.com/index.html
请求报文结构
# request line, 请求行
GET / HTTP/1.1# request header fields, 请求头首部
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,*/*;q0.8
Accept-Language: en-GB,en;q0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive# 一个空行# 可选的消息主题请求方法
HTTP定义了用于指示对特定资源执行的期望操作的方法。
GET
GET方法请求获取指定资源的表示。使用GET的请求应仅用于检索数据不应产生其他影响。幂等
HEAD
HEAD方法请求与GET请求相同的响应但不包含响应体。幂等
POST
POST方法请求服务器接受包含在请求中的实体作为URI标识的Web资源的新下级。
PUT
PUT方法请求将封装的实体存储在提供的URI下。幂等
DELETE
DELETE方法删除指定的资源。幂等
TRACE
TRACE方法回显接收到的请求以便客户端可以查看中间服务器是否进行了哪些如果有的话更改或添加。幂等
OPTIONS
OPTIONS方法返回服务器支持的指定URL的HTTP方法。这可用于通过请求’*而不是特定资源来检查Web服务器的功能。幂等
CONNECT
CONNECT方法将请求连接转换为透明的TCP/IP隧道通常用于通过未加密的HTTP代理便于SSL加密通信HTTPS。
PATCH
PATCH方法对资源应用部分修改。
所有通用的HTTP服务器都要求至少实现GET和HEAD方法并在可能的情况下也实现OPTIONS方法。
解释
一些方法例如HEAD、GET、OPTIONS和TRACE按照惯例被定义为“安全”这意味着它们仅用于信息检索不应改变服务器的状态。
PUT和DELETE方法被定义为“幂等”这意味着多个相同的请求应具有与单个请求相同的效果或者它返回的响应代码在后续请求中可能不同但系统状态在每次都将保持相同。
由于HTTP是无状态协议因此被规定为安全的GET、HEAD、OPTIONS和TRACE方法也应该是幂等的。 请求头字段
名称描述示例Accept响应中可接受的媒体类型。Accept: text/htmlAccept-Charset可接受的字符集。Accept-Charset: utf-8Accept-Datetime可接受的时间版本。Accept-Datetime: Thu, 31 May 2007 20:35:00 GMTAccept-Encoding可接受的编码列表。Accept-Encoding: gzip, deflateAccept-Language响应中可接受的人类语言列表。Accept-Language: en-USCache-Control用于指定在请求-响应链中所有缓存机制都必须遵守的指令。Cache-Control: no-cacheConnection当前连接的控制选项和逐跳请求字段的列表。不得与HTTP/2一起使用。Connection: keep-alive Connection: UpgradeContent-Encoding数据使用的编码类型。Content-Encoding: gzipContent-Length请求体的长度以八位字节为单位。Content-Length: 348Content-Type请求体的媒体类型用于POST和PUT请求。Content-Type: application/x-www-form-urlencodedCookie服务器先前使用Set-Cookie下文发送的HTTP cookie。Cookie: $Version1; Skinnew;
响应报文结构
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Content-Type: text/html; charsetUTF-8
Content-Length: 155
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
ETag: 3f80f-1b6-3e1cb03b
Accept-Ranges: bytes
Connection: closehtmlheadtitleAn Example Page/title/headbodypHello World, this is a very simple HTML document./p/body
/html服务器向客户端发送的响应消息包括: 一个状态行包括协议版本一个空格响应状态码另一个空格可能为空的原因短语一个回车符和一个换行符例如HTTP/1.1 200 OK 零个或多个响应头字段每个字段包括不区分大小写的字段名一个冒号可选的前导空格字段值一个可选的尾随空格并以回车符和换行符结束例如
Content-Type: text/html
一个空行包括一个回车符和一个换行符一个可选的消息主体。
响应状态
在HTTP/1.0及以后的版本中 HTTP响应的第一行被称为“状态行”包括一个数字状态码例如“404”和一个文本原因短语例如“Not Found”。
状态码的第一个数字定义了它的类别
1XX信息性请求已收到继续处理。2XX成功请求已成功接收、理解并接受。3XX重定向需要进一步采取措施以完成请求。4XX客户端错误请求包含错误的语法或无法满足。5XX服务器错误服务器未能满足显然有效的请求。
响应头字段
Field nameDescriptionExampleAccept-CH请求HTTP客户端提示Accept-CH: UA, PlatformAccess-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Expose-Headers, Access-Control-Max-Age, Access-Control-Allow-Methods, Access-Control-Allow-Headers指定哪些网站可以参与跨源资源共享Access-Control-Allow-Origin: *Age对象在代理缓存中存在的时间以秒为单位Age: 12Allow指定资源的有效方法。用于405方法不允许时Allow: GET, HEADContent-Encoding数据使用的编码类型。Content-Encoding: gzipContent-Language所附内容的预期受众的自然语言或语言集合Content-Language: daContent-Length响应体的长度以八位字节为单位Content-Length: 348Content-Location返回数据的备用位置Content-Location: /index.htmContent-Type此内容的MIME类型Content-Type: text/html; charsetutf-8
HTTP会话
3次握手
三次握手是TCP传输控制协议建立连接的过程。这个过程确保了客户端和服务器之间的可靠通信。三次握手的步骤如下
三次握手是TCP传输控制协议建立连接的过程。这个过程确保了客户端和服务器之间的可靠通信。三次握手的步骤如下 第一次握手SYN 客户端向服务器发送一个TCP报文其中设置了SYN同步标志位表明客户端希望建立连接。客户端选择一个初始序列号ISN并包含在这个请求中。 第二次握手SYN ACK 服务器接收到客户端的SYN请求并回应一个带有SYN和ACK标志位的TCP报文。服务器也选择一个初始序列号并包含在这个响应中。这时服务器进入半开放状态表示它已经准备好接受客户端的确认。 第三次握手ACK 客户端接收到服务器的响应后发送一个带有ACK标志位的TCP报文表示连接已经建立。客户端和服务器都确认了对方的序列号此时连接正式建立双方可以开始进行数据传输。
无状态协议
HTTP协议不存储每次请求的状态. Q: 那么如何维护用户的信息, 比如账号保持登陆? A: 使用cookies
CookiesHTTP Cookies是一种在客户端和服务器之间传递信息的小型文本文件。它们由服务器在HTTP响应头中的Set-Cookie字段创建并存储在客户端的浏览器中。之后浏览器每次请求相同的域时都会将这些Cookies信息包含在HTTP请求头中的Cookie字段中。