HTTP 初识 ---非专业整理,菜鸟

2017-04-27  本文已影响20人  欢乐的乐
前言:

现在正在从事Android开发,一直以来对网络模块的认识都非常的模糊。
对于HTTP这方便的知识一窍不懂,有时候看别人整理的资料太多理论知识根本看不懂,于是整理了这篇文章方便自己回顾,也希望能帮助像我一样不太懂后台的人。

URI和URL

URI (Uniform Resource Identifiers) 统一资源标示符
URL(Uniform Resource Locator) 统一资源定位符,是一种特殊类型的URI。
URI和URL一直都经常混乱,不过细看了URL是怎么组成的,就不怕混乱了。

URL一般由三部组成:
  1. 协议(或称为服务方式)
  2. 存有该资源的主机IP地址(有时也包括端口号)
  3. 主机资源的具体地址。如目录和文件名等

于是我理解成是一个地址


Request和Response

Request请求:

由请求行、请求头部、空行、请求数据四个部分组成
请求行:
GET /[要访问的资源] HTTP/1.1
POST / HTTP/1.1

Response响应:

由状态行、消息报头、空行、响应正文四个部分组成
状态行:
HTTP/1.1 200 OK

HTTP状态码:

状态码由三位数字组成,第一个数字定义了响应的类型,共分为五类:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求

常见状态码:

200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

GET提交:

GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连。


HTTP协议

原理:

HTTP 是基于TCP/IP协议的应用层协议。
它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。

Content-Type:

HTTP允许传输任意类型的数据对象,传输的类型由Content-Type标记。
浏览器是依靠Content-Type来判断响应的内容是网页还是图片,是视频还是音乐。
常用的Content-Type属性:

属性 内容
text/html .html 网页
image/jpeg .jpeg和.jpg 图片文件
image/png .png 图片文件
application/json json语句(接口的时候经常用)
application/octet-stream .* (二进制流,不知道文件类型)
application/x-www-form-urlencoded Form数据被编码为名称/值对
multipart/form-data Form数据被编码为一条信息,页面上的每个空间对应消息中的一个部分。
application/x-www-form-urlencoded和multipart/form-data在Form中的用法:(大神总结的)
application/x-www-form-urlencoded的请求例子:

POST /app/user/login HTTP/1.1
Host: 10.240.131.7:8080
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: 05234002-4223-66fb-34f8-9be70557a745

username=potato&password=112233


好好学习,天天向上。<( ̄oo, ̄)/


Potato_zero.jpg
上一篇 下一篇

猜你喜欢

热点阅读