目录
- 前言
- http概念
- 工作方式
- URL
- 请求方法
- 状态码
- Header
前言
本篇文章主要是记录自己复习http
相关的知识点,为后续学习Retrofit
打基础,简单记录一些零碎的点,以免忘记。
http概念
http
是一种超文本的传输协议,是为了传输HTML
语言的内容。位于TCP/IP
协议族的顶层。
工作方式
http
的工作方式一般是这样的:
浏览器
执行流程
- 在浏览器输入链接或者是点击某一个链接
- 浏览会把链接上的信息拼接好发送服务器
- 服务器收到以后,进行处理,把处理好的数据返回给浏览器
- 服务器拿到响应的数据,进行页面的渲染
- 流程结束
手机
执行流程
- 在手机上进入某个界面或者点击某一个按钮
- 手机软件上的相关代码会带着http报文的信息发送到服务器
- 服务器进行处理,然后返回给手机
- 手机在收到响应的数据后,进行页面的渲染或者其他操作
URL
先说URL
的格式:
URL格式
URL
有三部分组成:
我们拿https://nicholasyg.github.io/categories/
这个链接来举例子:
其中https
为协议类型;nicholasyg.github.io
为服务器地址;categories
为路径。
通俗点说:
- 协议类型:就是我们用
http
或者https
- 服务器地址(:端口号):用来发给目标服务器的
- 路径:这是给服务看,用来查找我们想要的内容
请求方法
GET 获取服务器端的资源,对服务端的内容不做修改,不发送Body
POST ⽤于增加或修改资源,发送给服务器的内容写在 Body ⾥⾯
PUT 用于修改服务器的资源,发送给服务器的内容写在 Body ⾥⾯
DELETE 用于删除服务器的某个资源 不发送Body
状态码
- 1开头 表示的是临时性消息,比如
100表示继续发送
- 2开头 这个见得比较多,200 就是成功
- 3开头 表示重定向,比如
304 表示内容未改变
- 4开头 表示的一般是指客户端错误,都是可以修改的 比如
404 地址找不到
- 5开头 表示的是服务器错误 常见的有
500 服务器异常
Header
header中的内容,一般是指的请求或响应数据的描述,比如Body有多长,传输的是什么类型等等这些信息,可以称为数据的元数据,下面具体介绍常用的:
Host
目标主机
注意:这个host并不是用来找服务器的,而是用来定位子服务器。比如我现在有一个
https://www.gbs.com/android
的网址,我想要去访问它,把它拼接好放在浏览器中,在发出请求之前,浏览器会拿着中间的域名,通过DNS去域名库中查找这一个域名,找到它所对应的IP地址服务器,然后把Host
当作信息的一部分发送给对应的IP地址服务器,可能这个IP地址对应的服务器有好多个子服务器,绑定了很多个域名,这时候服务器就可以通过这个Host
找到对应的域名,在这个对应的域名上查找信息返回。
Content-Type
指定Body的类型,主要有4种:
text/html
- 请求 Web ⻚页⾯是返回响应的类型,Body 中返回 html ⽂本
x-www-form-urlencoded
- Web ⻚页⾯纯⽂本表单的提交⽅式
multitype/form-data
- Web ⻚页⾯含有⼆进制⽂件时的提交⽅式
application/json , image/jpeg , application/zip …
- 单项内容(⽂本或⾮⽂本都可以),⽤于 Web Api 的响应或者 POST / PUT 的请求
Content-Length
指定Body的字节长度
Location
指定重定向的⽬标 URL
User-Agent
用户代理