HTTP 消息 请求方法 请求头 响应头 Content-Type内容类型

文章目录

  • 消息结构
    • 请求
    • 响应
  • 请求方法
    • GET
    • POST
    • HEAD
    • PUT
    • DELETE
    • OPTIONS
    • TRACE
    • CONNECT
  • 请求头
  • 响应头
  • 状态码
  • Content-Type内容类型

消息结构

请求

包含请求行、请求头部、空行与请求数据四部分构成:

HTTP 消息 请求方法 请求头 响应头 Content-Type内容类型_第1张图片

例:

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

响应

由状态行、消息报头、空行和响应正文构成。
HTTP 消息 请求方法 请求头 响应头 Content-Type内容类型_第2张图片
例:
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: “34aa387-d-1568eb00”
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

请求方法

HTTP1.0定义:GET、POST、HEAD;
HTTP1.1新增:OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT;

GET

请求指定的页面信息,返回实体主体。

可被缓存、保留在浏览器历史记录中、可添加书签;
只用于取回数据、有长度限制(2048字符)。

查询字符串在GET请求的URL中发送,对所有人可见,因此不应当处理敏感数据。

POST

向指定资源提交数据进行处理请求,比如提交表单与上传文件,可能会导致新资源的建立或已有资源的修改(新建/更新)。

不被缓存、不保留浏览器历史记录、不能添加书签;
没有长度限制。

查询字符串在POST的消息主体中发送,不会显示在URL中,参数不会被保存在浏览器历史或服务器日志中,比GET更安全。

与GET的其他不同:

刷新/后退:GET无影响而POST数据会被重新提交。

编码类型:GET为application/x-www-form-urlencoded,而POST为application/x-www-form-urlencoded 或 multipart/form-data,为二进制数据使用多重编码。

数据类型:GET只允许ASCII字符,POST没有限制、可使用二进制数据。

HEAD

与GET相同,但只返回报头,不返回文档主体。

PUT

向服务器传送的数据取代指定的文档内容,覆盖/更新资源。

PUT是幂等的(对相同输入的结果是相等的),即一个请求执行多次,产生的结果是相等的(而POST不是,因此每次执行相同内容时结果是否一致往往成为使用POST或PUT的区别)

DELETE

删除指定资源。

OPTIONS

返回服务器支持的HTTP方法。

TRACE

追踪路径。

CONNECT

把请求连接转换到透明的TCP/IP通信。

请求头

POST请求的Content-Length必须出现。

  • Accept/Accept-Charset/Accept-Encoding/Accept-Language:浏览器可接受的MIME类型/可接受的字符集/可解码的数据编码方式(支持gzip时减少5~10倍下载时间)/希望的语言种类。
  • Authorization:授权信息,通常应对服务器的WWW-Authenticate头。
  • Connection:是否需要持久连接,“Keep-Alive”值持久连接(HTTP1.1默认持久连接)。
  • Content-Length:消息正文的长度。
  • Cookie:保存状态,通常用于用户身份信息,客户端首次请求时,服务器返回Set-Cookie,客户端保存Cookie并在下次请求时自动带Cookie使服务器得知客户端状态信息。
  • From:请求发送者的Email地址。
  • Host:初始URL中的主机和端口。
  • If-Mdified-Since:当请求在指定日期后经过修改才返回,否则服务器应当返回304:Not Modified。
  • Pragma:指定“No-Cache”值表示服务器必须返回刷新后的文档,即使代理服务器已有本地拷贝。
  • Referer:包含URL,用户从该URL的页面出发访问当前请求页面。
  • User-Agent:浏览器类型。
  • UA-Pixels(-/Color/OS/CPU):某些版本的IE发的非标准请求,代表屏幕大小/颜色深度/操作系统/CPU类型。

响应头

表示文档位置已改变时应当返回Location头;401:Unauthorized必须伴随WWW-Authenticate头。

  • Allow:服务器支持哪些请求方法。
  • Content-Encoding/Content-Length/Content-Type:文档编码方法/内容长度/文档MIME类型。
  • Date:当前GMT时间。
  • Expires:文档缓存过期时间。
  • Last-Modified:文档最后修改时间。
  • Location:文档位置。
  • Refresh:浏览器应当在多长时间后刷新文档,以秒计。
  • Server:服务器名,一般自动设置。
  • Set-Cookie:设置Cookie。
  • WWW-Authenticate:指定客户端应当在Authorization头中提供的授权信息。

状态码

https://blog.csdn.net/fruiva/article/details/107703419

Content-Type内容类型

用于定义网络文件的类型与网页的编码,决定浏览器读取文件的格式、编码,告诉客户端返回内容的内容类型。

常见格式:

Content-Type: text/html; charset=utf-8

常见媒体格式类型:

  • text/html : HTML格式
  • text/plain :纯文本格式
  • text/xml : XML格式
  • image/gif :gif图片格式
  • image/jpeg :jpg图片格式
  • image/png:png图片格式
  • application/xhtml+xml :XHTML格式
  • application/xml: XML数据格式
  • application/json: JSON数据格式
  • application/pdf:pdf格式
  • application/msword : Word文档格式
  • application/octet-stream : 二进制流数据(如常见的文件下载)
  • application/x-www-form-urlencoded : < form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
  • multipart/form-data : 表单中的文件上传

你可能感兴趣的:(前端,http,前端)