加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice

发布时间:2020-12-16 22:41:57 所属栏目:安全 来源:网络整理
导读:HTTP协议 ? ? ? ? ?HTTP是 hypertext transfer protocol(超文本传输协议)的简写,它是 TCP/IP 协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。 ? HTTP服务器遵循一种请求-相应模式,每个HTTP请求包括两个

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 ??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读