请求方法:
http请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
HTTP2.0 新的二进制格式(Binary Format),HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的组合。基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。
1 GET 请求指定的页面信息,并返回实体主体。
2 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5 DELETE 请求服务器删除指定的页面。
6 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
7 OPTIONS 允许客户端查看服务器的性能。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。
前后端的数据传输是可以依靠ajax进行的,下面介绍一下ajax
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。
1):使用XMLHttpRequest对象与Web服务器进行异步数据通信;
2):使用Javascript操作Document Object Model进行动态数据显示及交互;
3):使用JavaScript绑定和处理所有数据等。
1.创建XMLHttpRequest对象
2.创建一个新的HTTP请求,并指定该HTTP请求的方法、URL即验证信息
3.设置响应HTTP请求状态变化的函数
4.发送HTTP请求
5.获取异步调用返回的数据
6.使用JS和DOM实现局部刷新
1、页面数据不用刷新就可以更新数据
2、异步与服务通信
3、前端和后端负载平衡:把服务器负担的工作转接到客户端,利用客户的闲置时间和能力来处理,“按需取数据”,可以最大程度的减少冗余请求和响应服务器造成的负担,提升站点性能
4、基于标准被广泛支持: 不需要浏览器下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器上执行
5、**界面与应用分离:**Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离),有利于分工合作 减少非技术人员对页面的修改造成的WEB应用程序错误 提升效率 也更加适用于现在的分布式系统
1.ajax干掉了Back和History功能,即对浏览器机制的破坏:在动态更新页面的情况下, 用户无法回到前一个页面状态,因为浏览器仅能记忆历史记录中的静态页面. 所以用户不能后退(ajax比较严重的问题)
2.ajax的安全问题:Ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。Ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有Ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于Credentials的安全漏洞等等
3.对搜索引擎支持较弱:使用不当 会大大增加网络数据流量 降低性能
4.破坏程序引擎异常处理机制:从目前看来像Ajax.dll,Ajaxpro.dll这些Ajax框架是会破坏程序的异常机制的
5.违背URL和资源定位的初衷:例如:我给你一个url地址,如果采用了ajax技术,也许你在该url地址下面看到的和我在这个url地址下看到的内容是不同的.这个和资源定位的初衷是相背离的
6.ajax不能很好地支持移动设备
7.客户端过肥,太多客户端代码造成开发省的成本负担:编写复杂、容易出错 ;冗余代码比较多(层层包含js文件是AJAX的通病,再加上以往的很多服务端代码现在放到了客户端);破坏了Web的原有标准。
8.如果客户关闭了js,网站就取不到数据
结语:
今天是值得纪念的一天,今天是1024,是程序员节,说一下我对编程的感悟吧,从小时候接触到游戏我就在想这到底是为什么能够根据人的指挥来进行判断和操作的呢,是不是有人在里面听从我们的指挥呢?那个时候我还没有它就是一个程序的概念,只觉得那个东西很神奇,后来才知道原来那就是程序,一种可以代替人进行操作和判断的执行工具,所以做程序也是我的兴趣所在,如果以后能从事自己喜欢的事情并获得成就是多么令人开心的事情,我喜欢在处理问题中寻找乐趣并享受代码执行无误的那种成功,所以我一直向着程序员方向前进。虽然我大学已经学了三年的计算机相关的课程,但是我觉得我还不是一名程序员,我的学习内容和掌握技能还不够,还没有达到能上班工作的要求,加油吧,争取早日成为一名合格的程序员。