HTTP协议

216 阅读3分钟

GET请求

GET请求主要用于获取数据,它的请求参数将会拼接在URL中,URL默认使用UTF-8编码格式(url长度有限制,无法传递长度较大的数据)

POST请求

POST请求主要用于添加,删除,修改数据,它的参数全部放在请求体中,且对参数长度没有任何限制

HEAD请求

Head请求会得到和GET请求一样的相应,但是没有相应体。 应用场景:下载一个较大的文件时获取文件大小,并提示是否需要下载(用于节省带宽资源)

OPTIONS请求

用于获取服务器支持什么请求方法(如:GET,POST...)

请求报文格式:
OPTIONS * HTTP/1.1
host: localhost:8080

TRACE请求

请求服务器回显收到的请求数据(我发什么给服务器,服务器返回什么给我),用于对HTTP请求的诊断和测试

CONNECT请求

可以开启一个客户端与所请求资源的一个双向通道,它可以用来创建隧道 可以用来访问采用了SSL(HTTPS)协议的站点

以下请求不安全,尽量少用

PUT请求

对已存在的资源进行整体覆盖

PATCH请求

对资源进行部分修改,若资源不存在,则创建资源

DELETE请求

用于删除指定资源

头部信息

头部信息可分为四种类型:

请求头字段(Request Header Fields)

有关要获取的资源或客户端本身信息的消息头

常用字段

头部字段说明实例
Content-Type请求体类型Content-Type: multipart/form-data
host端口号:域名Host: localhost:80
Content-Length请求体长度(字节为单位)Content-Length: 355
Accept能接收的响应内容类型Accept: text/plain
Accept-Encoding能接收的编码方式列表gzip,default
Range字节偏移量(以0开始)Range:betys:500-999
Origin发起一个针对跨域资源共享的请求Origin:www.baidu.com(只有当前请求地址才可以访问服务器)或Origin: “*” (所有地址都可以访问服务器)
Cache-control用来指定在这次的请求 响应链中的所有缓存机制 都必须遵守的指令Cache-control:no-cache

响应头字段(Response Header Fields)

有关响应的补充信息,比如服务器本身(名称和版本等)的消息头

头部字段说明实例
Content-Type响应体的类型Content-Type: text/html ; charset=utf-8
Content-Encoding内容所使用的编码类型Content-Encoding: gzip
Content-Length响应体的长度(字节为单位)Content-Length: 555555
Content-Disposition一个可以让客户端下载文件,并建议文件名的头部Content Disposition: attachment ; filename="xxx.txt"
Accept-Ranges服务器支持哪些种类的部分内容范围Accept-ranges: bytes
Content-Ranges这条部分消息是属于完整消息的那一部分Content-Ranges: bytes 21010-47021/47022
Access-Control-Allow-Origin指定哪些网站可参与到跨来源资源共享过程Access-Control-Allow-Origin:*
Location用来进行重定向Location:www.baidu.com
Set-Cookie返回一个cookie让客户端保存Set-cookie: UserID=dghjsdfvbuv;Max-Age=3360 ; version=1
Cache-Control向从服务器直到客户端在内的所有缓 存机制告知,它们是否可以缓存这个 对象。单位为秒Cache-Control:Max-Age=3360

实体头字段(Entity Header Fields)

有关实体主体的更多信息,比如主体长度(Content-Length)或其MIME类型

通用头字段(General Header Fields)

同时适用于请求和响应消息,但与消息主体无关的消息头