HTTP(一)

读图解http有感;

网络基础

  1. TCP/IP协议分层
    1. 应用层
    2. 传输层
    3. 网络层
    4. 链路层

客户端通过http协议发送请求,告知我想要什么,
这些信息需要通过链路层(物理层面,电脑,网线)传递给服务器;
传输层TCP获取到应用层发来的http请求后,解析http请求,知道了客户端想要干嘛,,;传递给网络层;
网络层IP则把获取到的信息打包成能在链路层传输的形式;进行网络传输;
在链路层: 物理层面,电脑,主机,操作系统,网线;等等;
信息从上到下,每过一层,都会有一层封装,到达接收端后从下到上,每到一层便会解封一层,获取自己需要的信息;

TCP协议的三次握手:
1.客户端:发送信息
2.服务端: 收到信息了
3.客户端: 我知道已收到信息了

现在主流用的是http1.1

Http://user:pass@www.baidu.com:8000/dir/index.html?uid=1
协议名,登录信息(可选),域名,端口号(可选),文件路径,参数(查询字符串)

Http是不保存状态的协议;

http简介

请求方法:

  1. GET: 获取资源
  2. POST: 传输实例主体(传输内容)
  3. PUT: 传输文件
  4. HEAD: 与get方法类似,去请求获取资源,但是并不会返回资源,而是返回资源的状态(有效性,更新时间等;)VB
  5. DELETE: 删除文件
  6. OPTION: 询问服务器支持的请求方法
  7. TRACE: 请求资源,有一个参数Max-Forwards,表示能够被代理转发的次数,服务器响应时会把之前的请求通信回环返回给客户端;(很少用)
  8. PATCH: PATCH方法对PUT方法的补充,用来对资源进行局部更新;

持久链接:

只要任意一端没有明确提出断开链接,则保持TCP网络链接状态;
在HTTP1.1中,所有的连接默认都是持久链接;

http协议是无状态协议为了保存客户端的状态,开发了cookie技术
客户端: 第一次没有cookie信息的请求:
服务端: 生成了cookie,记录状态,在响应报文中有Set-Cookie信息
客户端: 第二次发送请求,会自动带上cookie信息;

HTTP报文:

http报文大致可以分为报文首部和报文主题
报文首部: 请求或响应的属性;包括请求行(请求方法,url,http版本),状态行(状态码),首部字段,(各种条件和属性;)
报文主题: 发送的数据;

编码

http在传输数据时,可以按照数据原貌直接传输,也可以通过编码再传输
一般包括: 压缩传输的内容编码, 分割发送的分块传输编码

http状态码;

状态码有三位数字和原因短语组成
三位数字中第一位表示类别,后两位无分类;

状态码类别:

  1. 1XX: 信息性,请求正在处理
  2. 2XX: 成功,请求成功
  3. 3XX: 重定向,需要进行附加操作以完成请求
  4. 4XX: 客户端错误,服务器无法处理请求
  5. 5XX: 服务器错误,服务器处理请求出错

只要遵守状态码类别的定义,改变状态码或自行创建都可以;

代表性状态码

  1. 200 OK

请求正常处理;
2. 204 NoContent

请求已经成功处理但是没有什么资源可以返回;
3. 206 Partial Content

请求成功,请求只需要某一资源的一部分; 响应报文中有 Content-Range指定范围的试题内容
4. 301 Moved Permanently

永久重定向,分配了新的URI;
5. 302 Found

临时重定向;
6. 303 See Other

临时重定向
7. 304 Not Modified

请求的资源找到了,但是没有达成请求条件,比如请求资源,结果响应304,表示缓存未过期,请用缓存
8. 307 Temporary Redirect

临时重定向
9. 400 Bad Request

错误请求,
10. 401 Unauthorized

请求未认证,第一次返回401,会提示输入用户名密码;
11. 403 Forbidden

请求的资源找到了,但是没有权限获取;不允许访问;
12. 404 Not Found

请求的资源找不到;
13. 500 Internal Server Error

服务器错误
14. 503 Service Unavailable

服务器正忙;

  • 状态码和状况的不一致

有可能会出现状态码和真实状况不一致的情况,比如状态码200,表示请求成功,但是里面却没有实体内容;

英文单词

Partial: 局部的
Permanently: 永久的
Modified: 修改的
Temporary: 临时的
Redirect: 重定向
unauththorized: 非法的
Forbidden: 禁止
原文地址:https://www.cnblogs.com/bridge7839/p/7100170.html