HTTP 协议

Posted yytest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 协议相关的知识,希望对你有一定的参考价值。

一、简介

1. 基于TCP/IP通信协议

2. 浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求

3. HTTP默认端口号为80

4. HTTP是无连接,限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。

5. HTTP是无状态,是指协议对于事务处理没有记忆能力

6. HTTP协议通信流程:

技术图片

二、消息结构

1. 一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。

2. 一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。

3. HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

4. 客户端请求消息:

  请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成

技术图片

5. 服务器响应消息:

  HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文

技术图片

三、请求方法

技术图片

四、响应头信息

  • Allow : 服务器支持哪些请求方法(如GET、POST等)。
  • Content-Encoding : 文档的编码(Encode)方法。
  • Content-Length : 表示内容长度。
  • Content-Type : 表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html
  • Date : 当前的GMT时间。
  • Expires : 应该在什么时候认为文档已经过期,从而不再缓存它?
  • Last-Modified : 文档的最后改动时间。
  • Location : 表示客户应当到哪里去提取文档。
  • Refresh : 表示浏览器应该在多少时间之后刷新文档,以秒计。这种功能通常是通过设置HTML页面HEAD区的<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://host/path">实现.
  • Server : 服务器名字。
  • Set-Cookie : 设置和页面关联的Cookie。
  • WWW-Authenticate : 客户应该在Authorization头中提供什么类型的授权信息?

五、状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。

1. 常见的状态码

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

2. 状态码的分类

状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用,状态码一共有五类:

  • 1 开头 : 信息,服务器收到请求,需要请求者继续执行操作
  • 2 开头 : 成功,操作被成功接收并处理
  • 3 开头 : 重定向,需要进一步的操作以完成请求
  • 4 开头 : 客户端错误,请求包含语法错误或无法完成请求
  • 5 开头 : 服务器错误,服务器在处理请求的过程中发生了错误

3. 状态码的列表

技术图片

 

技术图片

 

技术图片

 

技术图片

 

技术图片

以上是关于HTTP 协议的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议工作原理是啥 HTTP协议工作原理介绍【详解】

大话http协议

URL&HTTP协议详解

你该懂的HTTP协议

Http协议答疑

HTTP,SSL/TLS和HTTPS协议的区别与联系