HTTP介绍

  • HTTP协议是互联网上应用最广泛的协议,它是一种无状态的数据传输协议,规定了数据请求方和数据响应方的数据传输方式;使用HTTP协议可以跨平台,跨语言的进行数据传输和展示。
  • 目前的Web应用基本都是基于HTTP协议实现的,无论是查看新闻,网上购物还是在线聊天,只要是通过浏览器打开的应用基本都遵循HTTP协议。
  • 当客户端(eg:浏览器,Httpclient,telnet...)向服务器(eg:Tomcat,Weblogic..)请求某个Web资源(eg: 查看网页,购物,在线游戏...)时就向服务器发送了一个HTTP请求,服务器接受到请求以后返回响应的报文。请求和响应的格式是固定的,请求行/请求头,响应行/响应头需要遵循一定的规范,请求体和响应体随着应用的不同而不同。
  • HTTP1.0和 HTTP1.1的主要区别是HTTP1.1允许客户端和服务器端建立连接以后,在一个连接上获取多个Web资源。如果请求的A资源上有另外三个资源,使用HTTP1.1不用反复握手,可以 一次请求。

HTTP请求

  • HTTP请求的方式有:GET/POST/PUT/DELETE/TRACE/OPTIONS,应用最广泛的是GET和POST,GET也是默认的请求方式。用户在地址栏输入www.baidu.com时就是以GET方式向百度申请资源,浏览器会自动识别和填充请求行和请求头;当百度收到请求后,后台应用程序会根据request的请求头还有参数去调用response进行响应的设置。
  • 各个浏览器都有很多查看HTTP交互的插件,IE有HTTPWatch,FF有HTTPFOX,Chrom有强大的开发者工具(ctrl+option+i)。

HTTP请求头主要携带:

  • 客户端的语言编码信息(来自操作系统),客户端的代理(浏览器等)
  • 客户端支持的内容展示方式(文本/html/图片/视频音频..),客户端是否支持文件压缩,是否支持下载
  • 客户端想访问的主机名和请求的访问来源(防止盗链,服务器通过该属性判断是否给予相应资源的权限)
  • 客户端的资源缓存时间
  • Cookie,携带传向服务器的信息

HTTP响应头主要携带:

  • 数据传输格式

HTTP响应状态码:

  • 200: OK
  • 302/307/309:请求资源重定向
  • 404:资源不存在,请求地址错误或者是有权限设置
  • 500:服务器内部错误

JavaWeb基础:HTTP协议和基于Restful的架构的更多相关文章

  1. JavaWeb基础—Http协议

    一.什么是Http协议 超文本传输协议的简称,用于定义客户端与web服务器通迅的格式. 关于[标准的HTTP协议是无状态的],请参见:http://www.cnblogs.com/bellkosmos ...

  2. JavaWeb基础: 学习大纲

    JavaWeb基础: Web应用和Web服务器 JavaWeb基础: Tomcat JavaWeb基础:HTTP协议和基于Restful的架构 JavaWeb基础: Web工程配置文件 JavaWeb ...

  3. SpringMVC+Json构建基于Restful风格的应用(转)

    一.spring 版本:spring-framework-3.2.7.RELEASE 二.所需其它Jar包: 三.主要代码: web.xml <?xml version="1.0&qu ...

  4. 基于RESTful API 怎么设计用户权限控制?

    前言 有人说,每个人都是平等的:也有人说,人生来就是不平等的:在人类社会中,并没有绝对的公平,一件事,并不是所有人都能去做:一样物,并不是所有人都能够拥有.每个人都有自己的角色,每种角色都有对某种资源 ...

  5. 基于RESTful API 设计用户权限控制

    RESTful简述 本文是基于RESTful描述的,需要你对这个有初步的了解. RESTful是什么? Representational State Transfer,简称REST,是Roy Fiel ...

  6. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  7. 超详细的Java面试题总结(四 )之JavaWeb基础知识总结

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...

  8. Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)

    环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewrite_module modules/mod_ ...

  9. WebApi系列~基于RESTful标准的Web Api

    微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码 ...

随机推荐

  1. Android checkbox 自定义点击效果

    安卓默认的效果                         自定义后的效果 前面的图片当然可以自己修改. 实现这个效果的步骤如下 1.建立 一个selector 的xml <?xml ver ...

  2. 【转载】在Linux中使用VS Code编译调试C++项目

    原文:在Linux中使用VS Code编译调试C++项目 最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项. 关于VS ...

  3. FreeSWITCH的TLS加密

    听着很高大上(实际也很实用)的加密机制,在FreeSWITCH里配置支持竟然这么简单! Greate FreeSWITCH and Greate Programmer! ① cd /usr/local ...

  4. HQL语句大全(转载)

    Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL.但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态 和关联之类的概念. ...

  5. sencha touch之模型(model)

    模型的实例相当于数据库中表的一条记录. 一般模型在\app\model下创建,而且必须遵守类的命名规则,也就是可以根据类名找到模型的定义文件. 所有模型类都要从Ext.data.Model或Ext.d ...

  6. CUBRID学习笔记 22 插入数据

    CREATE TABLE auto_tbl(id INT AUTO_INCREMENT, name VARCHAR); 自增长的列可以插入null, 同时一次可以插入多条记录.别的和其他的sql数据库 ...

  7. 2.mybatis入门实例 连接数据库进行查询

    1.新建项目,添加mybatis和mysql的jar包 2.在mysql中新建表user[id,name,age] CREATE TABLE `users` ( `id` ) NOT NULL aut ...

  8. Javascript屏蔽回车提交表单

    html利用input防止回车提交 默认情况下,单个输入框,无论按钮的type="submit"还是type="button"类型,回车即提交. 1.当type ...

  9. SAP 关于标准成本、计划成本、目标成本、实际成本

    SAP 关于标准成本.计划成本.目标成本.实际成本 <A style="MARGIN-RIGHT: 10px" target=_blank data-ext="{v ...

  10. bootstrap学习笔记<六>(表单二之按钮)

    按钮(补充) (ps:居中元素可以使用<center></center>标签) 块级按钮(ps:按钮占一整行) <button class="btn btn-p ...