浅谈http原理及报文首部

浅谈http原理基础
http:Hypertext Transport Protocol 超文本传输协议
经典的有ISO提出的OSI七层模型
在这里插入图片描述
客户端是浏览器Browser,服务端为http server
而html则是http传送文本格式。
超文本标记
一个页面中可能包含多个页面对象。我们用URI来定义互联网上的每一个资源
URL:Uniform Resource Identifier 统一资源标识符
URI:Uniform Resource Locator 统一资源占位符
例:http://www.wang.com:80/images
http协议的版本:
http/0.9:只能传输文本信息(html)。设计上有缺陷,
http/1.0:支持多媒体数据的处理,keep-alive(保持连接)有缓存功能
http/1.1:更多的请求办法,更精细的缓存空间,持久连接
MIME:Multipurpose Internet Mail Extension (多用途多功能邮件扩展)
base64:将二禁止数据编码成文本发送,并能够接收方还原回原来的格式。
http报文:
http事务:一次请求以及与其对应的响应
http方法:GET、PUT、HEAD、POST、DELETE
http请求:request
http响应:responce
其中http请求报文格式如下:
————起始行(请求行)
—请求方法,希望服务段执行的动作,如GET、HEAD、POST等
—请求的资源,可以是相对路径,也可以是完整的URL
—协议的版本号
—http首部
……
请求主体
http响应报文的格式

—协议的版本号
—状态码
—原因短语,数字状态码易读信息
……
响应报文
首部:
Name:value
Content-Type:images/gif
分为三类:
通用首部
请求首部
响应首部
http协议是一种statusless(无状态)协议:一次http事务结束后,连接即行断开,效率很低
因此http有两种加速方式:1.并行请求 2.持久连接
http请求方法:GET、HEAD、PUT、POST、DELETE、OPTIONS、TRACE
扩展方法:LOCK、COPY、MOVE、MKCOL
GET:请求获取一个资源,需要服务器发送
HEAD:跟GET相似,但其不需要服务器发送资源而仅仅传送响应首部
POST:支持html表单提交,表单中有用户填入的数据,这些数据都会发送到服务端。由服务器存储至其位置(例如发送处理程序)
PUT:与GET相反,向服务器写入文档,发布系统
DELETE:请求删除URL指定的资源
OPTIONS:探测服务器端对某资源所支持的请求方法
TRACE:跟踪请求要经过的防火墙代理或网关
http状态码:
1XX:信息性状态码
2XX:成功状态码
200:OK 201:created
3XX:重定向状态码 301-307
301:Moved Permanently 永久重定向 在相应报文中使用首部“Location:URL”
302:Found 临时重定向 在相应报文中使用首部“Location:URL”临时位置
304:Not Modified 条件式请求中使用
4XX:客户端类的错误
403:Forbidden 请求被服务器拒绝
404:Not Found 服务器无法找到请求的URL
405:Method Not Allowed 不允许使用此方法请求相应的URL
5XX:服务器类的错误
500:Internal Server Error 服务器内部错误
502:Bad Gateway 代理服务器从上游收到了一条伪响应
503:Service Unavailable 服务器此时无法提供服务,但将来可能有用
http首部:
通用首部:请求和响应都可以使用
请求首部:
响应首部:
实体首部:用于指定实体属性
扩展首部:非标准首部,可能是由程序开发者创建的
通用首部:
connection:定义了C/S之间的关于响应/请求的有关选项。
对于http/1.0 connection:keep-alive
via:显示了报文经过的中间节点
cache-control:缓存指示
请求首部:
client-IP:
Host:请求的主机名和端口号,虚拟主机环境下用于不同的主机
referer:指明了包含当前请求的原始资源的URL
User-Agent:用户代理,使用什么工具发出的请求
Accept首部:用户标明客户更加爱适合支持是用的方式或能力
Aceept:指明服务器能够发送的首部类型
Accept-Chartset:支持使用的字符集
Accept-Encoding:支持是用的编码方式
Accept-Language:支持使用的语言
条件请求首部
Expect
If-Modified-Since:是否在指定时间以来修改过此资源
If-None-Match:
跟安全相关的请求首部:
Authorization:客户端提供给服务端的认证数据,如账号和密码。
Cookie:客户端发给服务全的身份标识。
响应首部:
Age:响应持续时间
Server:向客户端标明服务器程序的名称和版本
协商首部:
Accept-Range:对当前资源来讲服务器所能接受的范围类型。
vary:首部列表,服务器会根据列表中的内容挑选出最合适的版本,发送给客户段
跟安全相关的首部:
Set-cookie:服务器在某客户端第一次发起请求是发给令牌
www-authentication:质询及要求客户提供帐号密码码。
实体首部:
Location:资源的新位置
Allow:允许客户端请求的方法
内容首部:
Content-Encoding
Content-Language
Content-Lenth
Content-Location
Content-Range
Content-Type
缓存首部:
Etag:实体标签
Expires:过期期限
Last-modifide:上一次的修改时间

发布了56 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41363156/article/details/84485865