webservice

HTTP协议

         HTTP是 hypertext transfer protocol(超文本传输协议)的简写,它是 TCP/IP 协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。

 

HTTP服务器遵循一种请求-相应模式,每个HTTP请求包括两个或三个部分:

  • 起始行,包含HTTP方法和要执行这个方法的资源路径、HTTP协议版本
  • 一个包含名-值字段的首部,可以提供元信息,如认证凭据、请求首选格式、客户端请求哪台主机、客户端一些环境信息

              常用请求头(浏览器发送给服务器的数据,为了告诉服务器一些情况)

Accept: text/html,image/*    我支持的数据类型

Accept-Charset: utf-8  支持的数据的编码字符集

Accept-Encoding: gzip 支持的压缩方式

Accept-Language: en-us,zh-cn 支持的语言

Host: localhost:8888 请求的主机名

Referer: http://www.atguigu.com/index.jsp 发送请求的界面对应的url 防盗链

User-Agent: Mozilla/4.0 浏览器的相关信息

Connection: keep-Alive   请求完成后,到是断开呢还是连接着

Date: Tue, 11 Jul 2000 18:23:51 GMT 发送请求的时间

 

Cookie: tt=123     //后面专门讲

 

  • 一个请求主体,包含资源的一个表示(只针对POST和PUT)
    POST /books/java.html HTTP/1.1
    Accept: */*
    Accept-Language: en-us
    Connection: Keep-Alive
    Host: localhost
    Referer: http://localhost/links.jsp
    User-Agent: Mozilla/4.0
    Accept-Encoding: gzip, deflate
        
    name=tom&password=123 

       

 主要有4个HTTP方法

  • GET
  • POST
  • PUT
  • DELETE

在实际中,如今POST在web上被大量滥用。不完成提交的所有安全操作应当使用GET而不是POST。只有真正提交的操作才应当使用POST。

 

 

 

一个HTTP响应代表服务器向客户端回送的数据,它包括:

  • 一个状态行
  • 若干消息头(响应头)
  • 实体内容 (响应体)
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 13 Jul 2000 05:46:53 GMT
Content-Length: 2291
Content-Type: text/html
Cache-control: private

<HTML>
<BODY>
……

 

状态行

格式: HTTP版本号 状态码 原因叙述

举例:HTTP/1.1 200 OK

 

状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:

状态码

含义

100~199

表示成功接收请求,但要求客户端继续提交下一次请求才能完成整个处理过程

200~299

表示成功接收请求并已完成整个处理过程,常用200

300~399

为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302

400~499

客户端的请求有错误,常用404

500~599

服务器端出现错误,常用 500

 

200 代表成功                           302 代表让浏览器重新请求另一个资源

 

404 找不到请求的资源           500 服务器出问题

 

 

 

Webservice:HTTP+XML=SOAP协议


WSDL:web service definition language

直译 : WebService定义语言

 

  1. 对应一种类型的文件.wsdl
  2. 定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式(schema约束)
  3. 一个web service对应一个唯一的wsdl文档,通过一个暴露出来的接口URL+?wsdl 来获得文档

 

SOAP:simple object  access protocal

直译: 简单对象访问协议

 

  1. 是一种简单的、基于HTTP和XML的协议, 用于在WEB上交换结构化的数据(符合wsdl规范的xml)
  2. soap消息:请求消息和响应消息
  3. http+xml(响应体、请求体)片断

 

 

SEI:WebService EndPoint Interface(终端)

直译: web service的终端接口,

 

  1. 就是WebService服务器端用来处理请求的接口

CXF:Celtix + XFire

一个apache的用于开发webservice服务器端和客户端的框架

 

一次web service请求的本质: 

 

  1. 客户端向服务器端发送了一个soap消息(http请求+xml片断)
  2. 服务器端处理完请求后, 向客户端返回一个soap消息

 

 

使用JDK开发WebService

 

开发服务器端

Web Service编码

  @WebService( SEI和SEI的实现类)

  @WebMethod(SEI中的所有方法)

发布Web Service

   Endpoint.publish((URL, 实现类);

 

开发客户端

使用eclipse提供的web service浏览器访问

查看对应的wsdl文档:…..?wsdl (一般浏览器)

请求webService并查看请求和响应消息(webservice浏览器)



创建客户端应用编码方式访问

借助jdk的wsimport.exe工具生成客户端代码:

       命令行进入生成客户端代码所在路径执行下面命令:

 wsimport-keep url?wsdl   

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值