专栏首页Linux驱动3.Android网络编程-http介绍

3.Android网络编程-http介绍

1.HTTP请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。

HTTP1.0定义了三种请求方法: GET(查), POST(改)和 HEAD(获取报头,一般用来测试链接是否正常)方法。

HTTP1.1新增了五种请求方法:Put(增),Delete(删), OPTIONS(查看服务器性能), TRACE(追溯服务器之前接收的请求,用来找问题) 等方法。

序号

方法

描述

1

GET

请求指定的页面信息,并返回实体主体。

2

HEAD

类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头

3

POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。

4

PUT

从客户端向服务器传送的数据取代指定的文档的内容。

5

DELETE

请求服务器删除指定的页面。

6

CONNECT

HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。

7

OPTIONS

允许客户端查看服务器的性能。

8

TRACE

回显服务器收到的请求,主要用于测试或诊断。

9

PATCH

是对 PUT 方法的补充,用来对已知资源进行局部更新 。

并且HTTP1.0规定浏览器与服务器只保持短暂的连接,每次请求后就会断开连接,一个包含有许多图像的网页文件的多个请求和应答则需要多次连接传输才能完成.

而HTTP1.1支持持久连接, 减少了建立和关闭连接的消耗和延迟, 一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输.

2.get和post

  • get : get提交的时候会将所有参数都拼在在url后面来访问.并且只接受1k以内的内容,每个参数以&隔开,由于参数内容是显示的,所以只能适用于非隐私访问.
  • post : post请求的时候则是将所有参数内容以key=value形式放到请求体中,并且长度不受限制.

3.request请求

客户端请求包含了4个部分:

  • 请求行(request line)
  • 请求头(header)
  • 空行、
  • 请求体

以get为例:

  • Host: 告诉服务器,客户端的地址
  • User-Agent: 客户端类型,这里表示用的是windows电脑,用的是QQBrowser浏览器(如果是手机的话,则会显示手机具体类型)
  • Accept: 告诉服务器,可以支持处理的数据类型
  • Accept-Lanauage: 告诉服务器,可以支持的语言
  • Accept-Encoding: 告诉服务器,可以支持解压哪些格式的数据
  • Referer: 告诉服务器该网页是从哪个页面链接过来的
  • Connection : 连接的状态,这里表示保持连接

而以post的话:

请求头中多了两个:

  • Content-Type: application/x-www-form-urlencoded : 请求体的url编码
  • Content-Length: 41 : 提交的请求体的长度

请求体刚好是41字节:

yuwen1=12&shuxue1=23&yuwen2=34&shuxue2=55

4.response 响应

客户端请求包含了4个部分:

  • 响应行(包含响应码)、
  • 响应头、
  • 空行、
  • 响应体

常见的响应码有:

  • 200~299 : 请求成功,服务器成功返回数据,比如200(get/post请求成功)
  • 300~399 : 服务端收到了请求 但是需要客户端作进一步操作,比如304(告诉客户端使用缓存)
  • 400~499 : 请求错误(客户端问题),比如404(资源不存在)
  • 500~599 :内部服务器错误,比如500(服务器内部错误)

示例如下:

  • Server : 描述服务器端类型
  • Accept-Ranges : 表示当前返回的数据单位
  • Last-Modified : 表示请求的资源的最后被修改的时间,这个字段的作用就是用于缓存服务器机制,用于判断缓存服务器中的资源是否过期,是否需要从源服务器更新。
  • ETag : 表示请求资源的版本,如果该资源发生变化,那么这个属性也会跟着变,和Last-Modified一样,可以用来判断缓存中的资源是否过期
  • Content-Type : 响应的类型
  • Content-Length : 响应体的数据长度
  • Date : 数据响应的时间

未完待续,下章学习servlet~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 48.QT-网络通信讲解1

    指网络管理员配置好的转发路径,能够直接确定数据路线转发,大型和复杂的网络环境通常不宜采用静态路由,当连线一改变,则静态路由需要重新配置

    张诺谦
  • Linux-hexdump命令调试event驱动—详解(13)

    hexdump: 查看文件的内容,比如二进制文件中包含的某些字符串,通常用来调试驱动用 描述: 我们以event1为例,当我们insmod挂载了键盘驱动后,出现...

    张诺谦
  • STM32-对芯片启动读保护,实现加密(详解)

    STM32可以对存储在flash上的程序进行读保护. 启动读保护后,用户就不能再读写程序了. 所以,在烧写程序之前,需要程序调用关闭读保护.关闭读保护后,会自动...

    张诺谦
  • HTTP协议的状态码解读

    当客户端把请求发送给服务器后,对方会根据处理结果返回一系列HTTP数据包。其中第一行就用给定格式表明服务器对请求处理的结果。第一行包括三部分信息,第一部分是一个...

    望月从良
  • 常见”HTTP状态码”大全

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server...

    空木白博客
  • HTTP协议概述

    HTTP1.0定义了三种请求方法:GET、POST、HEAD方法。 HTTP1.1新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRA...

    WindrunnerMax
  • 常见HTTP/FTP/WebSockets状态码大全

    这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1...

    小弟调调
  • 网络编程之HTTP协议的请求方法

    HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准。

    lyb-geek
  • Http protocal

    200:OK GET 请求的资源对象;HEAD 对应请求资源的 entity-header 字段,不包含消息体;POST;请求行为的结果消息体;TRACE: 包...

    WindWant
  • 学HTTP协议所要知道的基础知识(微总结)

    skylark

扫码关注云+社区

领取腾讯云代金券