这是我参与「第四届青训营 」笔记创作活动的第2天
HTTP
初始HTTP
HTTP --- 超文本 传输 协议
-
超文本
超越了普通文本的文本,文字、图片、视频等的混合体
-
传输
两点之间传输数据, 允许有中转或接力
-
协议
两个以上的参与者 的 一种行为约定和规范
HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」
那「HTTP 是用于从互联网服务器传输超文本到本地浏览器的协议 ,这种说法正确吗?
这种说法是不正确的。因为也可以是「服务器< -- >服务器」,所以采用两点之间的描述会更准确。
协议分析
HTTP常见的状态码
1xx 属于提示信息,中间状态
2xx 成功
- 200 一切正常,如果是非
HEAD请求,服务器返回的响应头都会有 body 数据。 - 204 No Content 与 200 OK 基本相同,但响应头没有 body 数据
- 206 Partial Content 是应用于 HTTP 分块下载或断点续传
3xx 重定向
- 301 Moved Permanently 表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
- 302 Found 表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问。
- 304 Not Modified 不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,
4xx 错误码,请求报文有误, 客户端的问题
- 400 Bad Requset
- 403 Forbidden 表示服务器禁止访问资源,并不是客户端的请求出错。
- 404 Not Found 表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。
5xx 客户端请求正常,服务器处理时内部发生了错误
- 500 Internal Server Error
- 501 Not Implemented 表示客户端请求的功能还不支持,类似“即将开业,敬请期待”的意思。
- 502 Bad Gateway 通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误
- 503 Service Unavailable 表示服务器当前很忙,暂时无法响应客户端,类似“网络服务正忙,请稍后重试”的意思。
报文
RESTful API 一种API设计风格; REST - Representational State Transfer
- 每一个URI代表一种资源
- 客户端和服务器之间,传递这种资源的表现层
- 客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化”
有常用的请求头:
- Accept
- Content-Type
- Cache-Control
- Cookie 响应头
- Content-Type
- Cache-Control
- Server
缓存分为强缓存和协商缓存
HTTP代理应用场景
- 网络爬虫使用
- 网络爬虫通过http代理ip在短时间内采集到大量信息
- 浏览器使用
- 用于突破网站IP地址限制问题
- 论坛发帖,问答推广,网上购物
- 直接使用
总结
本文主要对HTTP概念进行简介,对HTTP协议的相关内容做出简单的展示,以及对HTTP应用场景的介绍