HTTP协议

  |  

简介

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

工作原理

HTTP协议工作于客户端-服务端架构上(也就是CS架构)。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。

Web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

HTTP三点注意事项

无状态 无连接 媒体独立

  • HTTP是无连接:

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  • HTTP是媒体独立的:

这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

  • HTTP是无状态:

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

http消息结构

客户端请求消息结构:

请求行
请求头
空行
请求数据

服务器消息结构:

状态行 eg: HTTP:/1.1 200 ok (包括协议以及状态吗)
消息报头(响应头)(会包含一些 content-type, content-length,Etag,last-modified等信息)
空行
响应正文 (html文档,图片,json数据等)

http请求的方法类型

HTTP1.0(1996年发版)定义了三种请求方法: GET, POST 和 Head方法

HTTP1.x(1997年发版),新增了六种请求方法,OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法

http状态码

2XX 成功

  • 200 响应数据被正常处理
  • 204(not content) 正常响应, 但是没有实体
  • 206(partial content) 范围请求,返回部* 分数据, 响应报文中由content-range指定实体内容

3XX 重定向

  • 301(moved permanently) 永久重定向

  • 302(found) 临时重定向, 规范要求-方法名不变,但是都会改变

  • 303(set other) 和 302 类似, 但是必须用 get 方法

  • 304(not modified) 状态未改变,配合 (if-Match, if-Modified-Since, If-None, If-Range,if-Unmodified-Since)

  • 307(temporary Rediect) 临时重定向, 不改变请求方法

4XX 客户端错误

  • 400(bad request) 请求报文语法错误
  • 401 (unahthorized) 未授权, 需要认证
  • 403 (forbidden) 禁止访问,服务器绝句访问资源
  • 404 (not found) 服务器无法找到资源

5XX 服务器端错误

  • 500 服务器内部故障
  • 502 (bad gateway) 网关错误
  • 503 (serverunavaliable) 服务不可用

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 简介
  2. 2. 工作原理
    1. 2.1. HTTP三点注意事项
  3. 3. http消息结构
  4. 4. http请求的方法类型
  5. 5. http状态码
    1. 5.1. 2XX 成功
    2. 5.2. 3XX 重定向
    3. 5.3. 4XX 客户端错误
    4. 5.4. 5XX 服务器端错误
,