计算机网络——应用层协议之HTTP

引言

应用层的协议是针对了特定的应用程序。
应用层协议有很多,例如SSH、HTTP、SMTP、FTP、HTTP等等。

HTTP

HTTP是超文本传输协议,web是建立在http协议之上通信的。HTTP是种无状态协议,协议自身不对请求和响应之间的通信状态进行保存。
URI和URL
URI是统一资源标识符,URL是统一资源定位符。
URI用字符串表示某一互联网资源,而URL表示资源的地点,URL是URI的子集。
常用的HTTP请求方法
①GET:获取资源
用于请求已被URI标识的资源。
②POST:传输实体主体
在restful架构中主要用来创建资源
③PUT:传输文件
PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因为一般Web网站不用该方法。在Restful架构中主要用来更新资源。
④HEAD:获取报文首部
HEAD方法和GET方法一样,只是响应不返回报文主体部分,用于确认URI的有效性和资源更新日期。
⑤DELETE:删除文件
和put一样不带验证机制,
在restful架构中用来删除资源
⑥OPTIONS:询问支持的方法
用来查询针对请求URI指定的资源所支持的方法
⑦TRACE:追踪路径
不常用,会引起跨站攻击
⑧CONNECT:要求隧道协议连接代理
HTTP请求报文和响应报文的格式
请求报文:
请求行
请求首部字段
空行
报文主题
响应报文:
状态行
响应首部字段
空行
报文主体
GET与POST方法的区别
①GET重点请求服务器资源,POST重点向服务器发送数据
②GET没有请求体,POST有请求体
③GET的参数加载URL后面,POST参数放在请求体中
④GET安全性较低,POST安全性较高
⑤GET只支持iso-8895-1编码,POST支持标准字符集
常见状态码
200:请求被正常处理
204:请求被受理但没有资源可以返回
206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
301:永久性重定向
302:临时重定向
303:与302状态码有相似功能,但是表示客户端应该采用GET方式获取资源
304:代表服务器端资源未癌变,可以直接使用客户端未过去缓存
400:请求报文语法有误,服务器无法识别
401:请求需要认证
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙
HTTP首部
首部字段分为四种
通用首部字段
请求首部字段
响应首部字段
实体首部字段
①通用首部
Cache-Control:缓存控制
Connection:控制不再转发给代理的首部字段,管理持久连接
Date:表示报文创建时间
Transfer-Encoding:报文主体编码方式
Upgrade:是否可用更高版本协议通信
②请求首部
Accept:客户端可处理的媒体类型及优先级
Accept-Charset:通知服务器客户端所支持的字符集
Accept-Encoding:可接受的内容编码
Accept-Language:可接受的自然语言
Host:请求资源的主机名
If-Modified-Since:字段值遭遇资源更新时间,则希望能处理该请求,也就是说资源在这个时间之后未更新,那么服务器会发送304
Refer:从哪个页面发起的请求
User-Agent:浏览器信息
③响应首部
Location:重定向地址
Server:服务器信息
④实体首部
Allow:允许的请求方法
Content-Encoding:编码方式
Content-Language:实体主体的自然语言
Content-Length:实体主体的大小
Content-Type:实体主体的类型
Content-Range:当前发送部分的大小和整个大小
Last-Modified:最后修改时间
HttpOnly:阻止js获取cookie
X-Frame-Options:控制网站Frame标签显示问题,防止点击劫持
HTTP1.1新特性
①HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理
②多了一个请求头HOST
③带宽优化,断点续传
HTTP2新特性
多路复用 (Multiplexing)
多路复用允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。
二进制分帧
服务端推送

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值