【http】http的方法,状态码和组成部分
Http(Hypertext Transfer Protocol)
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
用于http协议交互的信息被称为http报文。请求端(客户端)的http报文叫做请求报文,响应端(服务器)的叫做响应报文。
请求报文由请求方法,请求URI,协议版本,首部字段(可选),内容实体(可选)构成
响应报文由协议版本,状态码,原因短语,首部字段(可选),实体主体构成
在每份报文中,请求URI,协议版本,状态码,原因短语,首部字段属于报文首部,然后空一行,剩下的是报文主体。
首部字段有4种:请求首部字段,响应首部字段,通用首部字段,实体首部字段,通用首部和实体首部为请求报文和响应报文都有的,而请求首部只有请求报文有,响应首部只有响应报文有。
报文是http通信中的基本单位,由8位组字节流组成,通过http通信传输。
实体作为请求和响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成
一般情况下,报文主体等于实体主体。只有当传输中进行编码操作时,实体主体的内容发生变化,才会和报文主体不一致。
http1.0和http1.1支持的方法
|
方法 |
说明 |
支持http协议的版本 |
|
GET |
获取已被URI识别的资源 |
1.0,1.1 |
|
POST |
传输实体主体 |
1.0,1.1 |
|
PUT |
传输文件(不带验证机制) |
1.0,1.1 |
|
HEAD |
获得报文首部 |
1.0,1.1 |
|
DELETE |
删除文件(不带验证机制) |
1.0,1.1 |
|
OPTIONS |
询问支持方法 |
1.1 |
|
TRACE |
追踪路径 |
1.1 |
|
CONNECT |
要求用隧道协议链接代理 |
1.1 |
|
LINK |
建立和资源之间的联系 |
1.0 |
|
UNLINK |
断开链接关系 |
1.0 |
http状态码
|
状态码 |
类别 |
原因短语 |
|
1XX |
Informational(信息性状态码) |
接收的请求正在处理 |
|
2XX |
Success(成功状态码) |
请求正常处理完毕 |
|
3XX |
Redirection(重定向状态码) |
需要进行附加操作以完成请求 |
|
4XX |
Client Error(客户端错误状态码) |
服务器无法处理请求 |
|
5XX |
Server Error(服务器错误状态码) |
服务器处理请求出错 |
14中常用的状态码
|
200 OK |
表示客户端发来的请求在服务器端被正常处理了 |
|
204 No Content |
表示服务器接收的请求已处理成功,但返回的响应报文不含实体主体部分 |
|
206 Partial Content |
表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求 |
|
301 Moved Permaently |
永久性重定向,表示请求的资源已被分配了新的URI,以后应使用该资源现在所指的URI |
|
302 Found |
临时性重定向,表示请求的资源已被分配了新的URI,希望用户本次能使用新的URI访问 |
|
303 See Other |
表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源 |
|
304 Not Modified |
表示客户端发送附带条件请求时,服务器端允许请求访问资源,但因发生请求为满足条件的情况后,直接返回304 Not Modified(服务器端资源为改变,可直接使用客户端未过期的主体部分) |
|
307 Temporary Redirect |
临时重定向,和302含义相同 |
|
400 Bad Request |
表示请求报文中存在语法错误。服务器端无法识别请求 |
|
401 Unauthorized |
表示发送的请求需要通过http认证的认证信息。若之前已进行过一次请求,则表示用户认证失败 |
|
403 Forbidden |
表示请求资源的访问被服务器拒绝了。没有权限访问 |
|
404 Not Found |
表示服务器无法找到请求的资源,即没有这个资源 |
|
500 Internal Server Error |
表示服务器端在执行请求时发生了错误,也有可能是web应用存在bug或某些临时性故障 |
|
503 Service Unavailable |
表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求 |
http通用首部字段
|
通用首部字段名 |
说明 |
|
Cache-Control |
控制缓存的行为 |
|
Connection |
管理逐跳首部和持久连接 |
|
Date |
创建报文的日期时间 |
|
Pragma |
报文指令 |
|
Trailer |
报文末端的首部一览 |
|
Transfer-Encoding |
指定报文主体的传输编码方式 |
|
Upgrade |
升级为其他协议,检测是否可使用更高版本协议通信 |
|
Via |
代理服务器的相关信息,追踪客户端和服务器之间的请求和响应报文的传输路径 |
|
Warning |
错误通知,通常会告知用户一些与缓存相关的问题的警告 |
http1.1 警告码(Warning共七种)
|
警告码 |
警告内容 |
说明 |
|
110 |
Response is stale(响应已过期) |
代理返回已过期的资源 |
|
111 |
Revalidation failed(再验证失败) |
代理无法验证资源有效性时失败(服务器无法到达等原因) |
|
112 |
Disconnection operation(断开链接操作) |
代理与互联网链接被故意切断 |
|
113 |
Heuristic expiration(试探性过期) |
响应的使用期超过24小时(有效缓存的设定时间大于24小时的情况下) |
|
199 |
Miscellaneous warning(杂项警告) |
任意警告的内容 |
|
214 |
Tansformation applied(使用了转换) |
代理对内容编码或媒体类型等执行了某些处理时 |
|
299 |
Miscellaneous persistent warning(持久杂项警告) |
任意的警告内容 |
http请求首部字段
|
请求首部字段 |
说明 |
|
Accept |
用户代理可处理的媒体类型及媒体类型的相对优先级 |
|
Accept-Charset |
优先的字符集,用户代理支持的字符集及相对优先顺序 |
|
Accept-Encoding |
优先的内容编码,用户代理支持的内容编码及优先级顺序 |
|
Accept-Language |
优先的语言,用户代理能处理的自然语言及自然语言集的相对优先级 |
|
Authorization |
Web认证信息 |
|
Expect |
期待服务器的特定行为 |
|
From |
用户的电子邮件地址 |
|
Host |
请求资源所在的服务器(主机名和端口号) |
|
If-Match |
和实体标记(ETag)比较,若相同则执行请求,否则返回412状态码 |
|
If-Modefied-Since |
若If-Modefied-Since字段值早于资源的更新时间,则希望处理该请求,否则返回304状态码 |
|
If-None-Match |
比较实体标记(与If-Match想反) |
|
If-Range |
资源未更新时发送实体Byte的范围请求。若If-Range字段值和请求资源的ETag值或时间相一致时,则作为范围请求处理,否则返回全体资源 |
|
If-Unmodified-Since |
比较资源的更新时间(与If-Modified-Since想反) |
|
Max-Forwards |
最大传输逐跳数(以十进制形式指定可经过的服务器的最大数目) |
|
Proxy-Authorization |
代理服务器要求客户端的认证信息 |
|
Range |
实体的字节范围请求 |
|
Referer |
对请求中URI的原始获取方(请求的原始资源的URI) |
|
TE |
告知服务器客户端能处理响应的传输编码方式及相对优先级 |
|
User-Agent |
http客户端程序的信息 |
http响应首部字段
|
响应首部字段 |
说明 |
|
Accept-Ranges |
是否接受字节范围请求 |
|
Age |
资源创建经过的时间,单位为秒 |
|
ETag |
资源的匹配信息,能告知客户端实体标识 |
|
Location |
令客户端重定向至指定URI |
|
Proxy-Authenticate |
代理服务器对客户端的认证信息 |
|
Retry-After |
对再次发起请求的时机要求 |
|
Server |
http服务器的安装信息 |
|
Vary |
代理服务器缓存的管理信息 |
|
WWW-Authenicate |
服务器对客户端的认证信息 |
http实体首部字段
|
实体首部字段 |
说明 |
|
Allow |
资源可支持的http方法 |
|
Content-Encoding |
实体适用的编码方式 |
|
Content-Language |
实体的自然语言 |
|
Content-Length |
实体的大小(单位为字节) |
|
Content-Location |
替代对应资源的URI |
|
Content-MD5 |
实体主体的报文摘要 |
|
Content-Range |
实体主体的位置范围 |
|
Content-Type |
实体主体的媒体类型 |
|
Expires |
实体主体过期的日期时间 |
|
Last-Modified |
资源最后修改的日期时间 |
【http】http的方法,状态码和组成部分的更多相关文章
- HTTP权威指南-报文与状态码
所有的报文都向下流动 报文流向 报文组成 HTTP方法 状态码 GET示例 HEAD示例 100~199 信息性状态码 200~299 成功状态码 300~399重定向状态码 400~499 客户端错 ...
- HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结
HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行 请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GE ...
- HTTP 笔记与总结(2 )HTTP 协议的(请求行的)请求方法 及 (响应行的)状态码
(请求行的)请求方法 包括: GET,POST,HEAD,PUT,TRACE,DELETE,OPTIONS 注意:这些请求方法虽然是 HTTP 协议规定的,但是 Web Server 未必允许或支持这 ...
- http请求方法与响应状态码
请求方法:GET POST HEAD PUT DELETE OPTIONS常用的方法是:GET POST GET提交可以在浏览器地址栏看到提交的信息 POST提交方式不显示在地址栏,相对于GET方式较 ...
- JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链
今天学习重点: 1.response和request响应和应答分别学习: 请求响应流程图 response 1 response概述 response是Servlet.service方法 ...
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
- HTTP状态码、请求方法、响应头信息
HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应 ...
- HTTP协议----请求方法和状态码
现在广泛使用的是HTTP/1.1版本,发布于1997年. 理解HTTP协议,首先从请求开始,比如: POST /form/entry HTTP/1.1 格式为: 请求方法 URI 协议版本 请求方法: ...
- HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端
协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...
随机推荐
- rxjava2学习笔记(1)
1.什么是RxJava? 简单,清晰的多线程编程框架.可方便的写出维护性高,逻辑清晰的Java程序. 2.什么是观察者模式? 入门教程讲这种高大上抽象概念都是耍流氓! 3.开始 3.1github地址 ...
- Ackerman 函数 (双递归函数)
public static int ackerman(int n,int m){ if(n==1&&m==0){return 2;} else if(n==0&&m ...
- 一套常用的css初始化样式
@charset "UTF-8"; /*css 初始化 */ html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, ...
- VUE进阶(路由等)
初级教程:http://www.cnblogs.com/dmcl/p/6137469.html VUE进阶 自定义指令 http://cn.vuejs.org/v2/guide/custom-dire ...
- 使用上传插件 Web Uploader 上传图片到七牛云(C#)
之前有写过一篇文章,基于asp.net mvc 封装 Web Uploader 上传插件: http://www.cnblogs.com/vanteking/p/5623682.html 已经实现的功 ...
- EXCEL数据导入数据库实例(NPOI)
Default.aspx 页面代码: 引用了: <script src="../../js/jquery.easyui.min.js" type="text/ ...
- KEIL中逻辑分析仪的使用
本学期开了门嵌入式的课程,在实验课上用到了一款基于ARM Cortex-M3处理器的LPC1768的实验板.本来这种课程我觉得应该可以学到很多东西,可是我发现实验课上老师基本只是讲了xx实验课的要求, ...
- LINQ to XML编程之编程基础
1.声明,LINQ to XML让xml的创建变得非常简单. XDocument myDocument = new XDocument( new XDeclaration("1.0" ...
- 【react】利用prop-types第三方库对组件的props中的变量进行类型检测
1.引言--JavaScript就是一个熊孩子 1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方.javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java ...
- 【算法系列学习】线段树vs树状数组 单点修改,区间查询 [kuangbin带你飞]专题七 线段树 A - 敌兵布阵
https://vjudge.net/contest/66989#problem/A 单点修改,区间查询 方法一:线段树 http://www.cnblogs.com/kuangbin/archive ...