【Android 网络协议 二】HTTP协议

Android Http请求方法汇总 现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!**任何市场都是优胜略汰适者生存,只要你技术过硬,到哪里都不存在饱和不饱和的问题,所以重要的还是提升自己。**另外一千个读者就有一千个哈姆雷特,所以以上只是自己的关键,不喜勿喷! 阅读详情


一、HTTP协议简介

    1、协议

    指计算机网络中两个计算机之间进行通信所必须遵守的规定或规则。

    2、HTTP协议

    是一种超文本传输协议。它允许将超文本标记语言(HTML)文档从Web服务端传送到客户端浏览器。


    3、URI

    a. URI的全称是uniform resource identifier,是统一资源标识符,用来唯一标识一个资源。就是说,Web上有很多种资源,比如说HTML文档、图像、视频等,它们都是用URI来定位的。

    b. 实例:file://a:1234/b/c/d.txt

    c. 由三部分组成:访问资源的命名机制、存放资源的主机名、资源自身的名称及路径。

    4、URL

    a. URL的全称是uniform resource locator,是统一资源定位器,它是一种具体的URI。URL不仅可以用来标识一个资源,而且还指明如何locate这个资源。

    b. 实例:www.baidu.com

    c. 由三部分组成:协议(http or https)、存有该资源的主机IP地址、主机资源的具体地址


二、HTTP协议的特点

1、简单快速:客户端只需要指明请求方法(get post...)和路径

2、无连接:每次连接只处理一个请求。服务端处理完客户端的请求就断开连接。

3、无状态:对以前处理的事务没有记忆能力。


三、Request/Response协议结构

    1、Request头部

表明本次请求的客户端、本次请求所使用的客户端、本次请求希望返回的数据类型、本次请求是否采用数据压缩等设置。

    a. 第一行:访问方法为Get方法,遵循的协议是HTTP/1.1

    b. Host参数(必须):请求资源的主机和端口号(Host通常是从Url中提取出来的,当未指定端口号时,http默认为80端口,https默认为403端口)

    c. User-Agent参数:客户端使用的操作系统和浏览器的名称。

    d. Accept参数:客户端可以接受的媒体类型,其中,"*/*"表示能接受所有媒体类型

    e. Referer参数:浏览器是从哪个Url链接过来的

    f. Accept-Encoding参数:浏览器支持的编码方式

    g. Accept-Lauguage参数:浏览器支持的语言类型

    h. If-None-Match参数:该参数与Response请求头的ETag联合使用,告诉服务端可以在Response请求头添加ETag,客户端再次请求这个资源时,就会把ETag值添加这个参数中,如果资源没有改变,就会返回304状态码,告知客户端可以直接使用缓存,这就大大提高了浏览器性能。

    i. If-Modified-Since参数:该参数告知浏览器缓存文件的最后一次修改时间,如果等于服务端资源的最后一次修改时间,就返回304状态码。


2、Response头部

表明服务器标识、状态码、内容编码、返回给客户端的cookie等。


    a. 第一行:表明协议和状态码

    b. Date参数:生成这个Response的具体时间

    c. Last-Modified参数:这个资源最后一次修改时间

    d. ETag参数:和If-None-Match配合使用。

    e. Expire参数:告诉浏览器最多可以使用多长时间缓存

    f. Cache-Control参数:

    g. Proxy-Connection参数:当http请求完成,客户端和服务端传输http数据的tcp连接没有断开,如果客户端再次访问服务端上的这个资源,就可以继续使用这个已经建立好的tcp连接。


四、工作流程

1、首先客户端与服务端建立连接。

2、建立连接后,客户端发送一个请求给服务端。

3、服务器接到请求后,给予相应的相应信息。

4、客户端接收到服务端返回的信息,断开连接。


五、http1.1和http1.0的区别

1、http1.0存在的延迟

        a. 浏览器阻塞:浏览器对于同一个域名,同时只能有4个连接

        b. DNS查询:浏览器需要知道服务器端IP才能建立连接

        c. 建立连接:三次握手

2、http1.0和http1.1区别

        a. 缓存处理:

            http1.0 通过request头部的IfModifyThings

            http1.1 通过request头部的If-None-Match

        b. 网络连接:

            http1.1通过range参数可以获取资源的某一部分

        c. Host头处理

        d. 长连接:

            keep-alive可以复用tcp长连接


六、http1.0和http1.1存在的问题【精】

    (1)HTTP 1.0 在传输数据时,每次都需要建立连接,无疑增加了大量的延迟时间。

    (2)HTTP 1.1 在传输数据时,所传输的内容都是明文,客户端和服务端都无法验证对方的身份。

    (3)HTTP 1.1 在使用时,header里携带的内容过大,在一定程度上增加了传输的成本。

    (4)HTTP 1.1 支持了keep-alive,来弥补多次创建连接产生的延迟,但使用多了给服务器带来了大量压力


七、SPDY

    (1)SPDY是Http的一种兼容协议。

我们知道http有各种各样的缺点,谷歌最先想到了要去改变这种现状,他们就研究了一套基于http的SPDY协议。

    (2)多路复用请求

    (3)对请求划分优先级

    (4)压缩http头


八、Http 2.0

    (1)基于SPDY,IETF制定的新一代Http协议

    (2)更安全的SSL

        

九、cookie和session的区别

1、cookie

        cookie技术是客户端的解决方案,cookie就是有服务端发给客户端的特殊信息,而这些信息由文本的方式放在客户端,然后客户端每次向服务端发送请求的时候都会带上这些特殊信息。

    

2、session

        session技术是另一种记录客户状态的机制,并保存在服务器中。客户端访问服务器的时候,服务端将客户端信息以某种形式存放在服务器上。

3、cookie和session的区别

        存放位置不同

        存取方式不同

        安全性不同

        有效期不同

        对服务器造成的压力不同


十、最后

    以上为目前我对HTTP相关知识的总结,以后会陆续更新。如有任何疑问,可留言提问,博主每天都会查看。

        

 

Android面试之网络协议篇 一、TCP/IP 1、概念 TCP/IP是网络通讯协议族,即网络通讯协议总称。TCP、UDP、IP、FTP、SMTP、HTTP等都属于TCP/IP族内的协议。 2、TCP/IP四层体系结构模型 TCP/IP概念层模型 主要协议 功能 应用层 FTP、SMTP、HTTP 接收传输层的数据、按照应用要求将数据传输至传输层 传输层 TCP... 阅读详情

相关推荐

Android之HttpClient 和HttpResponse 小结

三步曲: 1.创建HttpGet或者HttpPost对象,将要请求的URL对象构造方法传入HttpGet、HttpPost对象 2.通过HttpClent接口的实现类DefaultClent.的excute(HttpUriRequestrequest)而我们已经知道HttpGet和HttpPost类都实现了 HttpUriRequest接口,所以这里面,我们可以将第

码莎拉蒂 5837

android httpresponse找不到,Android HttpResponse – 已消耗内容

当读取HttpResponse时,下面的方法会出现错误:“已消耗内容”.我知道内容只能被消耗一次,但是我在第一次尝试时遇到了这个错误,我在代码中没有看到我可能会消耗它两次.private static String getData(String url,HttpParams params) {StringBuilder builder = new StringBuilder();HttpClien...

weixin_31437777的博客 479

AIOps探索 | 如何用大模型构建高效运维知识及智能问答平台(1)

好久没有分享AIOps相关干货了,最近大模型这么火,而且我们有客户已经基于大模型构建了知识及智能问答平台,需要在运维领域结合使用场景进行应用。为此,楼主从头到尾声梳理了一遍大模型在运维领域构建知识及智能问答平台的应用场景、技术实现,总结出来供大家一同探索,希望对大家理解和运用大模型有一定帮助~

智能运维及数据中台探索 2810

Android 之 Http 请求头与响应头的学习

好了,看了那么多概念的东西,不动动手怎么行呢?这里贴下上一节给出的图,根据下面给出的表,大家自己感受下相关请求头的作用吧: PS:第一行是请求行:请求方式 + 资源名称 + HTTP协议版本号,另外请求头只是给服务端的一个 信息而已或者说一个简单,至于怎么处理,还是由服务端来决定的!上节中我们对Android涉及的网络编程进行了了解,也学习了下Http的基本概念,而本节我们 要学习的是Http的请求头与响应头,当然,可以把也可以把这节看作文档,用到的时候来查查 即可!//告诉浏览器响应码,以及重定向页面。

leyang0910的博客 1005

HBase在物流行业的应用:轨迹数据存储

想象一下,每天在全球范围内,数以亿计的物流包裹在各个城市、乡镇间穿梭。每一个包裹从发货人手中出发,经过仓储中心、转运站,最终到达收货人手中,这一路上都留下了它的“足迹”,也就是我们所说的轨迹数据。这些数据就像一个个拼图碎片,完整拼接起来后,能够清晰地呈现出整个物流网络的运行状况。例如,你在网上购买了一件心仪已久的商品,迫不及待地想知道它现在到哪儿了。物流平台实时更新的轨迹信息,让你可以准确了解包裹是在运输途中,还是已经到达附近的站点。

架构师的AI之路,分享AI应用开发架构的学习与实践。 965

Cesium初级开发教程之三十:Primitive集合

教程示例网站:https://thomaz529.github.io。

484

respond java 使用_java – 使用android问题的HttpResponse:执行总...

我一直在研究一个Android项目,我想要一些API来获取信息.看起来这应该是非常基本的!这是我的代码的一般要点:private InputStream retrieveStream2(String url){DefaultHttpClient client = new DefaultHttpClient();HttpGet getRequest = new HttpGet(url);System...

weixin_34379608的博客 221

Couldn‘t agree a key exchange algorithm(available:curve25519-sha256,curve25519-sha256@libssh.org解决方案

本文主要介绍了Couldn’t agree a key exchange algorithm(available:curve25519-sha256,curve25519-sha256@libssh.org解决方案,希望能对使用winscp的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 方案一 2.2 方案二

weixin_43178406的博客 4万+

Android之网络协议篇

Android开发中要掌握的协议,一般包括Http协议和Tcp/Ip协议,如果开发蓝牙设备还要知道一些蓝牙BLE协议。还有一个就是Socket编程,也是以Tcp/Ip协议为基础的,并且和无线设备比较相关。 一.Http协议 (一)Http基础知识 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守...

Jeyden_827的博客 3249

数字人接大模型第二步:语音克隆

推荐XTTS-v2项目,由Coqui公司开发的语音生成模型,专为多语言语音克隆和生成设计。它支持17种语言,包括英语、西班牙语、法语、德语、意大利语、葡萄牙语、波兰语、土耳其语、俄罗斯语、荷兰语、捷克语、阿拉伯语、中文、日语、匈牙利语、韩语和印地语。XTTS-v2的核心优势在于其仅需6秒的音频片段即可实现语音克隆,无需大量的训练数据。此外,它还支持情感和风格转移、跨语言语音克隆以及多语言语音生成,采样率高达24kHz。地址:https://github.com/archwesome/XTTS-v2。

403

IO Virtualization with Virtio.part 2 [十三]

通过对virtio_device_id 中的 device 和 vendor 的值进行比较,我们找到对应的 virtio 驱动,由于这里我们使用 i2c virtio 为例,所以调用 virtio_i2c_probe 进行 virtio i2c 设备的初始化。在和 virtio mmio 设备交互时我们会读取 VIRTIO_MMIO_DEVICE_ID 和 VIRTIO_MMIO_VENDOR_ID,并将其值写入 virtio_device_id 中,这个就会用作后面和 virtio 设备驱动的匹配参数。

cxjczy1990的博客 1211

安卓网络协议 HTTP协议

HTTP 的定义 ⼀种⽹络传输协议,位于 TCP / IP 协议族的最顶层——应⽤层 HTTP Hypertext Transfer Protocol,超⽂本传输协议,和 HTML (Hypertext Markup Language 超⽂本标 记语⾔) ⼀起诞⽣,⽤于在⽹络上请求和传输 HTML 内容 HTTP 的⼯作⽅式 浏览器: ⽤户输⼊地址后回⻋或点击链接 -> 浏览器拼装 HTTP 报⽂并发送请求给服务器 -> 服务器处理请求后 发送响应报⽂给浏览器 -> 浏览器解析响应报⽂并使

blithe影子 1161

MATLAB使用贝叶斯网络bnt工具箱:使用手册详解

MATLAB使用贝叶斯bnt网络工具箱:使用手册详解

WW、forever的博客 2676

Android 网络协议

在做Android程序时,我们已不再仅仅局限于单机的,而是要能够实现交互。那么Android中的网络协议有什么呢?说白了还是TCP/IP协议簇,他也是最重要的网络协议。 最重要的协议,TCP,UDP,IP,ARP,RARP,HTTP,SMTP,FTP等。   ISO七层协议:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。IP协议只保证计算机能发送和接收分组数据,而T

Linda的专栏 841

基于STM32设计的智能门锁(微信小程序+手机APP等多种方式开锁)(188)

当前智能门锁项目是基于STM32微控制器、ESP8266-WIFI模块、OLED显示屏、指纹模块、蓝牙模块、门禁刷卡模块、烟雾检测模块、火光检测模块、温湿度检测模块等硬件设备开发的一种智能门锁系统

1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【搞定网络协议】之网络协议面试题整理

博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信一起交流秋招面试经验。 本文目录: 一 OSI与TCP/IP各层的结构与功能,都有哪些协议 二 TCP三次握手和四次挥手(面试常客) 三 TCP、UDP协议的区别 四 TCP协议如何保证可靠传输 五 在浏览器中输入url地址 ->> 显示主页的过程(面试常客) 六 状态码 七 各种协议与HTT...

Java学习 3928

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android网络协议

原文出处:http://blog.csdn.net/wenzhi20102321/article/details/54947437

Sunshine_yuan的博客 583

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android之网络请求1————HTTP协议

Android之网络请求1————HTTP协议

冰炭不投day的博客 2599

Android网络协议总结

Android开发中要掌握的协议,一般包括Http协议和Tcp/Ip协议,如果开发蓝牙设备还要知道一些蓝牙BLE协议。还有一个就是Socket编程,也是以Tcp/Ip协议为基础的,并且和无线设备比较相关。

wenzhi的博客 4612

网络协议的简单梳理--socket、http、https、tcp、ip

一、socket 1、socket套接字是通信的基石,是支持TCP/IP协议的基本操作单元,包含进行网络通信的五种信息        1> 链接使用的协议       2> 本地主机的IP地址       3> 本地进程的协议端口      4> 远地主机的IP地址      5> 远地进程的协议端口       多个TCP链接或者多个应用程序进程可能需...

ningn111的博客 1882

趣谈网络协议:像小说一样的网络协议入门课

作者|极客时间不管是前端还是后端,几乎所有的程序运行都会涉及到网络协议。比如说你想优化公司的网站访问速度,大概的思路是减少 HTTP 请求,同时设置静态文件缓存时间、压缩情况、保持持久的连接时间等参数,但这些东西,又需要你系统了解 HTTP 协议。再比如说,找工作的时候,面试官总是喜欢问你 TCP 和 UDP 的区别,你大概也就知道一个可靠,一个不可靠,再具体到传送数据段、几次握手等等问题,你又是...

weixin_34408717的博客 294

Android网络协议的面试总结

说一下TCP/IP两种的协议的理解? 定义 即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准, 网络模型 TCP/IP协议参考模型把整个ISO模型归类到四个抽象层中: 应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 传输层:TCP,UDP 网络层:IP,ICMP,OSPF,EIGRP,IGMP 数据链路层:SLI...

轻描时光 1392

Java中的网络协议

OSI七层模型 TCP/IP四层模型 HTTP协议 HttpClient HttpURLConnection TCP协议 UDP协议 Socket实现TCP通信 Socket实现UDP通信 为了使不通类型的计算机之间可以相互通信,国际化标准组织提出了OSI七层网络模型,从下到上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。但是OSI七层网络模型仅仅用于实验室,并没有真正的使用它,实际的环境中用的是TCP/IP四层模型,TCP/IP四层网络模型包括:链路层、网络层、传输层、应用层。 链

androdi__LT的博客 2067

Android中的Http通信(一)之Http协议基本知识

一、什么是Http? 超文本协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。Http定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎么把文档传给浏览器。Http是万维网可靠的交换文件(包括文本、图像、声音、以及视频等)的基础。 工作流程:一次的Http请求成为一次事务,其工作流程可以分为四步: 1、首

weixin_39389323的博客 858

网络协议入门:OSI模型与TCP/IP栈

在网络通信的世界中,数据从一台设备传输到另一台设备,需要遵循一系列规则,这些规则统称为网络协议。OSI模型和TCP/IP协议栈作为网络通信的基石,帮助我们理解数据传输的全流程。这篇文章将深入解析它们的结构、功能和实际应用,为大家打开网络协议的大门。

引用原创内容标明出处即可 2487

android rtsp协议转http协议_网络协议HTTP 协议(一)

HTTP协议是一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可拓展的语义和自描述消息格式,与基于网络的超文本信息系统灵活地互动。1.HTTP 请求场景示意图2.浏览器发起 HTTP 请求流程图3.DNS 解析流程示意图DNS解析的目的就是把域名字符串对应的ip地址拿到,有了这个ip地址之后就可以向ip地址对应的计算机发起通信了:3.1 DNS 解析流程示意图3.2...

weixin_33400388的博客 250
上一篇: 【Android Fragment相关】Fragment基础知识总结
下一篇: 【网络协议】HTTPS协议
Colin_Mindset
博客等级 码龄12年 159粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值