HTTP协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写。
用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。
原理:
通信过程:
web服务器:
HTTP协议的特点:
URL 是 Uniform Resource Locator 的缩写。统一资源定位器。
URL 是一个网页地址:
一个URL的组成有多个不同的组件,一个URL的通用格式如下:
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
说明:
组件 | 名称 | 描述 |
---|---|---|
scheme | 方案 | 指定访问服务器获取资源时使用哪种协议,有HTTP、HTTPS、FTP、SMTP等协议。 |
user | 用户 | 某些访问资源时候需要指定用户名,才有权限获取资源。 |
password | 密码 | 用户名后面可能需要密码进行验证,用户名与密码直接使用“:”冒号分隔连接。 |
host | 主机 | 资源宿主服务器的主机名或者IP地址(点分十进制)。 |
port | 端口 | 资源宿主服务器正在监听的端口号。 |
path | 路径 | 服务器本地资源的路径。 |
params | 参数 | 某些方案会使用这个组件来输入参数,可以拥有多个参数,使用“;”符号 与路径分隔开。 |
query | 查询 | 某些方案会使用这个组件传递参数以激活应用程序,查询组件的内容没有通 用的格式,用 ? 字符与其他组件分隔开 |
frag | 片段 | 这个字段是在客户端内部使用,不会发送到服务器,通过“#”字符与其他组件分隔开 。 |
注意:
网页地址:https://www.cnblogs.com/lizhuming/p/13834535.html
在浏览器中按 F12 进入浏览器控制台,可以看到很多 URL。
客户端请求消息由四部分组成:
如图:
头部信息参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
//请求报文 <method> <request-URL> <version> <headers> <entity-body>
服务器响应消息也是由四部分组成:
如图:
//响应报文 <version> <status> <reason-phrase> <headers> <entity-body>
响应状态码说明:
范围 | 已定义范围 | 描述 |
---|---|---|
100 : 199 | 100 : 101 | 信息提示 |
200 : 299 | 200 : 206 | 成功 |
300 : 399 | 300 : 305 | 重定向 |
400 : 499 | 400 : 415 | 客户端错误 |
500 : 599 | 500 : 505 | 服务器错误 |
tips:具体的状态码到参考链接了解。
打开浏览器,F12 进入后台,点击 network 查看。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
方法 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体。 |
HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头。 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
应答头 | 描述 |
---|---|
Allow | 服务器支持哪些请求方法。 |
Content-Encoding | 文档的编码(Encode)方法。 |
Content-Length | 内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。 |
Content-Type | 表示后面的文档属于什么MIME类型。 |
Date | 当前的GMT时间。 |
Expires | 文档有效期截止时间。过期不缓存。 |
Last-Modified | 文档的最后改动时间。 |
Location | 表示客户应当到哪里去提取文档。 |
Refresh | 表示浏览器应该在多少时间之后刷新文档。单位 秒。 |
Server | 服务器名字。 |
Set-Cookie | 设置和页面关联的Cookie。 |
WWW-Authenticate | 客户应该在Authorization头中提供什么类型的授权信息。 |
tips:使用应答头参数时,建议到参考链接了解其作用。