HTTP协议笔记

关键地方:基于TCP的应用层的网络协议,这里的协议就客户端和服务端进行通信的一种规则。模式就是发起请求,响应请求!

HTTP请求构成:

  • 请求行:包含请求方法、请求地址和 HTTP 协议版本
  • 消息报头:包含一系列的键值对
  • 请求正文(可选):注意和消息报头之间有一个空行
  • 注意:这些组成只要在打开网页的浏览器就可以找到,按下F12就可以了!

里面的信息关键的有如下:   

  • Host 是请求报头域,用于指定被请求资源的 Internet 主机和端口号,它通常从 HTTP URL 中提取出来;
  • User-Agent 用于标识请求者的一些信息,比如浏览器类型和版本,操作系统等;
  • Accept 用于指定客户端希望接受哪些类型的信息,比如 text/html, image/gif 等;

HTTP 通过不同的请求方法以多种方式来操作指定的资源,主要常用的请求方法如下:

GET:从服务器获取指定(请求地址)的资源的信息,它通常只用于读取数据,就像数据库查询一        样,不会对资源进行修改。

POST:向指定资源提交数据(比如提交表单,上传文件),请求服务器进行处理。数据被包含在请          求正文中,这个请求可能会创建新的资源或更新现有的资源

PUT:通过指定资源的唯一标识(在服务器上的具体存放位置),请求服务器创建或更新资源。

DELETE:请求服务器删除指定资源。

HTTP 响应与 HTTP 请求相似,由三部分组成:

  • 状态行:包含 HTTP 协议版本、状态码和状态描述,以空格分隔
  • 响应头:即消息报头,包含一系列的键值对
  • 响应正文:返回内容,注意和响应头之间有一个空行

状态码重点:

200 是状态码,表示客户端请求成功,OK 是相应的状态描述

  • 1XX 消息 -- 请求已被服务接收,继续处理
  • 2XX 成功 -- 请求已成功被服务器接收、理解、并接受
    • 200 OK
    • 201 Created 已创建
    • 202 Accepted 接收
    • 203 Non-Authoritative Information 非认证信息
    • 204 No Content 无内容
  • 3XX 重定向 -- 需要后续操作才能完成这一请求
    • 301 Moved Permanently 请求永久重定向
    • 302 Moved Temporarily 请求临时重定向
    • 304 Not Modified 文件未修改,可以直接使用缓存的文件
    • 305 Use Proxy 使用代理
  • 4XX 请求错误 -- 请求含有词法错误或者无法被执行
    • 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解
    • 401 Unauthorized 请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用
    • 403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
    • 404 Not Found 请求的资源不存在,例如,输入了错误的URL
  • 5XX 服务器错误 -- 服务器在处理某个正确请求时发生错误
    • 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求
    • 503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常
    • 504 Gateway Time-out 网关超时

POST 所对应的 URI 并非创建的资源本身,而是资源的接收者,资源本身的存放位置由服务器决定;而 PUT 所对应的 URI 是要创建或更新的资源本身,它指明了具体的存放位置

HTTP 是在网络上传输 HTML 的协议,用于浏览器和服务器的通信,默认使用 80 端口

URL 地址用于定位资源,HTTP 中的 GET, POST, PUT, DELETE 用于操作资源,比如查询,增加,更新等。

POST VS PUT

  • 使用 PUT 创建资源需要提供资源的唯一标识(具体存放位置),POST 不需要,POST 的数据存放位置由服务器自己决定
  • 使用 PUT 更新某一资源,需要更新资源的全部属性;而使用 POST,可以更新全部或一部分值
  • GET 可提交的数据量受到 URL 长度的限制,HTTP 协议规范没有对 URL 长度进行限制,这个限制是特定的浏览器及服务器对它的限制。
  • 理论上讲,POST 是没有大小限制的,HTTP 协议规范也没有进行大小限制,出于安全考虑,服务器软件在实现时会做一定限制。

 

posted @ 2017-03-24 23:25  Jhon23  阅读(104)  评论(0编辑  收藏  举报