为了账号安全,请及时绑定邮箱和手机立即绑定

Android中的Http通信

难度中级
时长 4小时11分
学习人数
综合评分9.47
108人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.2 逻辑清晰
  • HTTP 是超文本传输协议(Hypertext transfer protocol),面向应用层协议,传输的对象为文件 一次Http操作为一个事务 1:客户机和服务器建立连接,单击链接开始工作 2:客户机发送请求给服务器,格式为URL、协议版本号,后面是MIME信息 3:服务器接到请求后,给以响应信息,格式为一个状态行,包括协议版本号、一个成功或错误的代码,后面是MIME信息(404错误代码为无法响应) 4:客户端街道服务器的响应信息,然后断开连接 HTTP协议是一个无状态的协议 URL(UniformResourceLocator)为网页地址。由三部分构成:第一部分为协议(https为加密协议)、第二部分为IP地址(一般是域名表示IP地址)(有时包括端口号)、第三部分为主机资源的具体地址,如目录和文件名 TCP/IP三次握手 SYN是TCP/IP连接时使用的握手信息(synchronous),在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN信息,服务器使用SYN和ACK应答表示接受到了这个信息,最后客户机再以ACK信息确认响应,这样在客户机和服务器机建立起可靠的TCP连接 ACK(Acknowledgement)即确认字符,表示已经接受到信息 三次握手: 客户机:你好,我想和你建立连接(发送SYN请求连接) 服务器:你好,我已经接受到信息并且已经准备连接,同时我也想和你建立连接(发送ACK表示可以连接,同时发送SYN表示连接想法) 客户机:谢谢,我已经收到你的连接想法,同时我已经准备连接(回发ACK表示可以连接) 整个过程是双方都需要向对方发送连接想法和确认连接信息 http请求头信息: Request URL:请求的地址 Request Method:请求方法 Status Code:请求状态 Accept:可以接受的文件格式 Accept-Encoding:可接受的编码 Accept-Language:可接受的语言 Connection:连接方式 Host:主机地址
    查看全部
  • 总结: * HttpURLConnection的connect()函数,实际上只是建立了一个与服务器的tcp连接,并没有实际发送http请求。 * 无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去。 * * 对HttpURLConnection对象的一切配置都必须要在connect()函数执行之前完成。 * 而对outputStream的写操作,又必须要在inputStream的读操作之前。 * 这些顺序实际上是由http请求的格式决定的。 * * 在http头后面紧跟着的是http请求的正文,正文的内容是通过outputStream流写入的, 实际上outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络, 而是存在于内存缓冲区中,待outputStream流关闭时,根据输入的内容生成http正文。 * 至此,http请求的东西已经全部准备就绪。在getInputStream()函数调用的时候,就会把准备好的http请求正式发送到服务器了,然后返回一个输入流,用于读取服务器对于此次http请求的返回信息。由于http请求在getInputStream的时候已经发送出去了(包括http头和正文),因此在getInputStream()函数之后对connection对象进行设置(对http头的信息进行修改)或者写入outputStream(对正文进行修改) 都是没有意义的了,执行这些操作会导致异常的发生。
    查看全部
  • doGet() 数据量小可以用这个 通过url暴露出来的 doPost() 数据量大可以用这个 安全,通过实体 (1)GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。   POST提交:把提交的数据放置在是HTTP包的包体中。上文示例中红色字体标明的就是实际的传输数据 因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变 (2)传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。 而在实际开发中存在的限制主要有: GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。 因此对于GET提交时,传输数据就会受到URL长度的限制。 POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。 (3)安全性: .POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存, (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击
    查看全部
  • http/1.0和1.1 HTTP/1.0每次请求都需要建立新的TCP连接,连接不能复用。 HTTP/1.1新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。 HTTP1.1在Request消息头里头多了一个Host域,HTTP1.0则没有这个域
    查看全部
    0 采集 收起 来源:http1.0和1.1区别

    2015-10-03

  • 二、SI参考模型将整个网络通信功能划分为七个层次: 由低到高分别是物理层PH、数据链路层DL、网络层N、传输层T、会话层S、表示层P、应用层A http协议属于应用层 每层直接为其上层提供服务,并且所有层次都互相支持。四到其层负责互操作性;一到三层用于创造两个网络设备间的物理连接 物理层和数据链路层:将比特流转换成电流信息,在物理设备电流设备转化 网络层:IP协议,规划网络ip地址 传输层:降底层信息通过nava协议传输,对应tcp、udp等协议 会话层:建立连接 表示层:在两个不同编码方式下进行数据转化和编码的加密解密操作 应用层:http访问层,应用请求协议 提出tcp/ip四层协议
    查看全部
    1 采集 收起 来源:http协议特点

    2015-10-03

  • HTTP 是超文本传输协议(Hypertext transfer protocol),面向应用层协议,传输的对象为文件 一次Http操作为一个事务 1:客户机和服务器建立连接,单击链接开始工作 2:客户机发送请求给服务器,格式为URL、协议版本号,后面是MIME信息 3:服务器接到请求后,给以响应信息,格式为一个状态行,包括协议版本号、一个成功或错误的代码,后面是MIME信息(404错误代码为无法响应) 4:客户端街道服务器的响应信息,然后断开连接 HTTP协议是一个无状态的协议 URL(UniformResourceLocator)为网页地址。由三部分构成:第一部分为协议(https为加密协议)、第二部分为IP地址(一般是域名表示IP地址)(有时包括端口号)、第三部分为主机资源的具体地址,如目录和文件名 TCP/IP三次握手 SYN是TCP/IP连接时使用的握手信息(synchronous),在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN信息,服务器使用SYN和ACK应答表示接受到了这个信息,最后客户机再以ACK信息确认响应,这样在客户机和服务器机建立起可靠的TCP连接 ACK(Acknowledgement)即确认字符,表示已经接受到信息 三次握手: 客户机:你好,我想和你建立连接(发送SYN请求连接) 服务器:你好,我已经接受到信息并且已经准备连接,同时我也想和你建立连接(发送ACK表示可以连接,同时发送SYN表示连接想法) 客户机:谢谢,我已经收到你的连接想法,同时我已经准备连接(回发ACK表示可以连接) 整个过程是双方都需要向对方发送连接想法和确认连接信息 http请求头信息: Request URL:请求的地址 Request Method:请求方法 Status Code:请求状态 Accept:可以接受的文件格式 Accept-Encoding:可接受的编码 Accept-Language:可接受的语言 Connection:连接方式 Host:主机地址
    查看全部
  • 讲的还不错,建议新手要学习 的多理解用httpURLconnecttion的方式 他比较原生。 对以后理解有好处
    查看全部
  • 为什么我照着老师您做的一样,却不能在服务器端显示信息呢
    查看全部
  • http响应码: 200 OK //客户端请求成功; 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
    查看全部
    0 采集 收起 来源:http协议特点

    2015-09-29

  • syn--》请求 ack--》响应
    查看全部
  • TCP\IP的基础与三次握手
    查看全部
  • 什么是URL
    查看全部
  • 什么是http
    查看全部
  • Http协议主要流程:可分为四步
    查看全部
  • 请求头信息
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Android初级课程 1、熟练掌握基本的Android应用程序开发方法 2、熟练掌握Android中数据请求的方式 3、明白get请求和post请求的区别和联系
老师告诉你能学到什么?
1、了解http基本协议 2、掌握http交互请求,例如post、和get请求 3、使用代码实现Android中的post和get请求

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!