简介
HTTP协议即超文本传输协议(Hyper Text Transfer Protocol,HTTP)是因特网上应用最广泛的一种网络传输协议,HTTP是一个基于TCP/IP通信协议来传递数据。
HTTP是无连接的,即限制每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答之后,即断开连接。
HTTP是媒体独立的,即只有客户端和服务器知道如何处理数据内容,任何类型的数据都可以通过HTTP发送,客户端和服务器只需要指定MIMIE-type内容类型。
HTTP是无状态的,HTTP协议对事务处理没有记忆能力,如果想要在每一次连接后进行处理,那么需要进行重传。
URL
http使用统一资源标识符(Uniform Resource Identifiers,URI)来建立连接和传输资源。url是一种特殊URI。url即统一资源定位符,一个url通常由协议、域名、端口、路径和URL地址参数。URL的一般格式如下:
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
常用的protocol(协议)有:http协议、file(本地计算机上的文件)、ftp协议、https协议
hostname(主机名): 是指存放资源的服务器的域名系统(DNS) 主机名或 IP 地址。有时,在主机名前也可以包含连接到服务器所需的用户名和密码(格式:username:password@hostname)。
port: 端口号,可以自己指定也可以使用默认的
path: 由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
parameters : 这是用于指定特殊参数的可选项。
query: 可选,查询用于给动态网页传递参数
fragment: 字符串,用于指定网络资源中的片段。
消息格式
客户端发送一个HTTP请求到服务器,请求消息包括以下格式:请求行、请求头部、空行和请求数据组成。如下:

服务器响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。如下:

HTTP请求方法
http/1.1请求方法有以下几种:
GET:请求指定的页面信息,并返回实体主体
HEAD: 类似于GET,不获取主体,只获取报头
POST:向指定资源提交数据进行处理请求。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容
DELELTE:请求删除指定的页面
CONNECT: HTTP/1.1中预留给能够将连接改为管道方式的代理服务器
OPTIONS: 允许客户端查看服务器的性能
TRACE: 回显服务器收到的请求,用于测试和诊断
PATCH:对PUT的补充,进行局部更新。
HTTP响应头信息
| 字段 | 说明 |
|---|---|
| Accept | 可接受的响应内容类型 |
| Allow | 服务器支持哪些请求方法(GET,POST等) |
| Content-Encoding | 文档的编码方法 |
| Content-Length | 内容长度 |
| Content-Type | 后面文档的MIME类型 |
| Date | 当前的GMT时间 |
| Expiress | 表示文档什么时候过期,从而丢弃 |
| Last-Modified | 文档的最后改动时间 |
| Location | 文档的地址 |
| Refresh | 浏览器间隔多长时间后刷新文档,单位秒 |
| Server | 服务器名称 |
| Set-Cookie | 设置关联的Cookie |
| WWW-Authenticate | 客户在Authorization头中提供什么类型的授权信息 |
HTTP的Content-type
常见的媒体格式如下:
- text/html : html格式
- text/plain :纯文本格式
- text/xml : xml格式
- image/gif : gif格式
- image/jpeg : jpg格式
- image/png: png格式
以application开头的媒体格式类型:
- application/xhtml+xml : xhtml格式
- application/xml : xml格式
- application/atom+xml : Atom XML聚合格式
- application/json : JSON数据格式
- application/pdf : pdf格式
- application/msword: word格式
- application/octet-stream : 二进制流
- application/x-www-form-urlencoded
- multipart/form-data: 需要在表单中进行文件上传时,使用该格式。
HTTP请求/响应
- 客户端连接到web服务器
- 客户端发送HTTP请求
- 服务器接收请求并返回HTTP响应
- 释放连接TCP连接
- 客户端解析HTML内容
HTTP响应的状态码
| 分类 | 描述 |
|---|---|
| 1** | 信息,服务器收到请求,需要请求者继续执行操作 |
| 2** | 成功,操作被成功接收并处理 |
| 3** | 重定向,需要进一步完成请求 |
| 4** | 客户端错误,请求包含语法错误或无法完成请求 |
| 5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
常见的状态码:
| 状态码 | 状态码英文名称 | 中文描述 |
|---|---|---|
| 200 | OK | 请求成功,一般用于GET和POST |
| 301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
| 304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源 |
| 401 | Unauthorized | 请求要求用户的身份认证 |
| 402 | Payment Required | 保留,将来使用 |
| 403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
| 404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 |
| 500 | Internal Server Error | 服务器内部错误,无法完成请求 |
| 502 | Bad Gateway | 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 |
| 503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 |
参考:
https://www.runoob.com/http/http-tutorial.html
HTTP是互联网上应用最广泛的网络传输协议,基于TCP/IP通信,无连接且媒体独立。它定义了客户端和服务器之间的交互方式,包括请求方法如GET、POST、PUT等,以及响应头信息和状态码。URL是HTTP中用于定位资源的重要组成部分,而Content-Type定义了数据内容的类型。
2727

被折叠的 条评论
为什么被折叠?



