`
Spiritualize_彭韬
  • 浏览: 25732 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android中的http通信之理论

 
阅读更多

一.HTTP

 

HTTP 是超文本传输协,面向应用层协议,传输的对象为文件
一次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:主机地址
http响应形式:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态码必须和WWW-Authenticate 报头玉一起使用
403 Forbidden// 服务器收到请求,但是拒绝提供服务

 

二、SI参考模型将整个网络通信功能划分为七个层次:


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

 

三.HTTP1.0和HTTP1.1的区别

 

http/1.0和1.1区别
HTTP/1.0每次请求都需要建立新的TCP连接,连接不能复用。
HTTP/1.1新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。
HTTP1.1在Request消息头里头多了一个Host域,HTTP1.0则没有这个域。Host:www.w3.orghttp/1.0和1.1区别
HTTP/1.0每次请求都需要建立新的TCP连接,连接不能复用。
HTTP/1.1新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。优点是减少重复进行TCP三次握手的开销,提高效率。
HTTP1.1在Request消息头里头多了一个Host域,HTTP1.0则没有这个域。Host:www.w3.org
HTTP1.1增加了OPTIONS,PUT,DELETE,TRACE,CONNECT这些Request方法
HTTP1.1增加了OPTIONS,PUT,DELETE,TRACE,CONNECT这些Request方法

分享到:
评论

相关推荐

    慕课网 Android中的Http通信 笔记及源码

    本笔记及源码主要探讨了如何在Android环境中实现Http通信,包括基础理论、常用库的使用以及实际操作中的注意事项。 一、Http通信基础 Http(超文本传输协议)是一种应用层协议,用于在Web上交换数据。在Android中,...

    Android系统应用开发 实验五 网络通信 实验报告

    总的来说,这个实验全面覆盖了Android中网络通信的基础知识,从简单的浏览器实现到复杂的网络协议交互,对提升学生的实践能力和理论理解大有裨益。通过这样的实践,学生不仅能够了解Android网络通信的原理,还能掌握...

    android同linux底层通信机制实现

    【Android与Linux底层通信机制实现】是Android系统开发中的核心环节,它涉及到Java层与JNI层的交互以及如何调用Linux底层驱动。Android应用程序主要由Java编写,运行在Dalvik虚拟机上,但为了实现与硬件设备的直接...

    Android socket通信聊天,客户端+服务端

    本文将深入探讨如何在Android中实现基于Socket的客户端和服务端通信,以构建一个简单的聊天应用。 首先,让我们理解Socket的基本概念。Socket是网络通信中的一个编程接口,它允许两台计算机通过网络进行数据交换。...

    Android网络通信相关的论文和文献

    这篇集合了多篇关于Android网络通信的论文和文献,将为我们深入理解这一主题提供丰富的理论基础和实践指导。 首先,Android平台提供了多种网络通信方式,包括HTTP/HTTPS、Socket编程、FTP、Bluetooth等。其中,...

    【eoeAndroid特刊】第六期 数据通信-成为Android数据流

    在Android开发中,数据通信是不可或缺的一个重要环节,它...本特刊“【eoeAndroid特刊】第六期 数据通信-成为Android数据流大师.pdf”应该会提供更详尽的理论解析和实践案例,助你在Android数据通信领域更上一层楼。

    Android串口通信demo(AS)

    通过学习这个demo,开发者不仅可以掌握Android串口通信的基础知识,还能了解到如何将理论应用于实际项目。这对于需要与硬件设备交互的Android应用,如智能家居控制、物联网设备管理等场景非常有用。 请注意,由于...

    Android-Socket长连接通信心跳包消息回调Java服务端

    在Android开发中,网络编程是不可或缺的一部分,尤其是对于需要实时通信的应用来说,Socket长连接尤为重要。本主题将深入探讨如何实现“Android-Socket长连接通信心跳包消息回调Java服务端”的技术细节。 首先,...

    PC客户端与Android服务端的Socket同步通信.docx

    ### PC客户端与Android服务端的Socket同步通信 #### 概述 在现代移动应用开发中,经常需要实现PC客户端与Android设备之间的数据交互。本文档将详细介绍如何通过Socket同步通信技术,实现PC客户端与Android服务端的...

    Android应用源码安卓与PC的Socket通信项目C#版+Java版

    在本项目中,“Android应用源码安卓与PC的Socket通信项目C#版+Java版”提供了一个完整的示例,展示了如何使用C#和Java语言在Android设备与个人电脑(PC)之间实现Socket通信。下面我们将详细探讨相关的知识点。 ...

    android 线程通信学习

    在Android应用开发中,线程通信是至关重要的一个环节,它涉及到UI线程与工作线程之间的数据交换和控制流程。本教程将深入探讨Android线程通信的基本概念、常用方法以及如何通过Demo来实践这些技术。 一、Android...

    Android串口通信(Android Studio)SerialPort-Test源代码.rar

    在Android平台上进行串口通信是实现设备间交互或者与硬件设备连接的重要技术。这个"Android串口通信...记得在实际开发中,不仅要理解理论知识,还要结合具体设备和场景进行实践,以确保串口通信的稳定性和可靠性。

    Android进程间通信-Binder机制详解

    这就是本文中要介绍的 Android 系统进程间通信机制 Binder。 Binder 机制是 Android 系统中最重要的组成部分,是一种进程间通信机制,提供远程过程调用(RPC)功能。Binder 机制中,由四个组件组成,分别是 Client...

    android串口通讯demo

    “android串口通讯demo”作为一个实际的应用示例,可以帮助开发者了解如何将上述理论知识应用于实际项目中,通过调试和学习,提升串口通信编程能力。 综上所述,`android串口通讯demo`涵盖了Android串口通信的主要...

    android 串口通信6.0以上.so包.zip

    1. **Android 串口通信**:Android系统提供了`java.io`和`java.util`包中的类,如`FileInputStream`和`FileOutputStream`,理论上可以用来读写串口。然而,这些API不直接支持串口通信,因此开发者需要通过JNI(Java ...

    android下UDP通信

    在Android中,我们主要通过Socket编程来实现UDP通信,使用`java.net.DatagramSocket`类创建UDP套接字。 对于单播通信,即一对一的通信方式,Android客户端(AndroidUDPClient)和服务器端(AndroidUDPServer)都...

    Android USB串口数据传输DEMO

    通过分析这个文件,我们可以了解到如何将这些理论知识应用到实际项目中。 总的来说,Android USB串口数据传输DEMO是一个很好的学习资源,它演示了如何利用第三方库`usbSerialForAndroid`实现在Android设备上进行USB...

    Android手机IPV4和IPV6通信.rar

    在Android平台上,网络通信是应用程序开发中的重要环节。本示例"Android手机IPV4和IPV6通信.rar"提供了一个详细的实现,演示了如何在Android设备上利用Socket进行IPv4和IPv6的通信。IPv4和IPv6是互联网协议的两个...

    基于Android平台的USB通信技术研究.pdf

    这表明基于Android的USB通信技术不仅理论上可行,而且在实际应用中也表现出良好的稳定性和可靠性。 总结来说,Android平台的USB通信技术为开发者提供了一种便捷的方式,使得Android设备能够直接与各种USB设备(如...

    Android中文翻译组Android中文API合集 chm版本 免费

    示例部分提供了实际的代码片段和完整的项目实例,这有助于开发者直观地学习如何将理论知识应用到实践中。例如,网络请求的实现可能包括使用HttpURLConnection或OkHttp库,数据持久化可以通过SharedPreferences或...

Global site tag (gtag.js) - Google Analytics