HTTP协议

Posted gaojinshun

tags:

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

1.HTTP 概念

  HTTP(Hyper Text Transfer Protocol)是超文本传输协议。是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它是TCP/IP协议的一个应用层协议。简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式。HTTP消息包括客户端发向服务器的请求消息和服务器回给客户端的响应消息。

2.客户端和服务器信息交换过程:

  1. 建立连接
  2.客户端请求信息
  3.服务器响应信息
  4.断开连接

3.HTTP协议的特点

  1.HTTP协议是一个无状态的协议,即服务端对于客户端每次发送的请求都认为它是一个新的请求,上一次会话和下一次会话没有联系;
  2.HTTP1.1支持连续连接,一次连接可以发送多个请求

4.消息的基本格式

4.1.请求消息的基本格式

一个请求行(格式:请求方式 资源路径 HTTP版本号)
若干个请求头
一个空行(分隔请求头和请求实体)
请求实体

4.2.响应消息的基本格式

一个状态行(格式:HTTP版本号 http状态码 http状态描述)
若干应答头
一个空行(分隔应答头和响应实体)
响应实体

5.常用状态码:

200(一切正常)
3xx(重定向)
400(请求出现语法错误)
403(请求资源不可用)
404(无法找到资源位置)
500(服务器内部错误)

6.消息头(C)

6.1通用消息头

通用消息头---既可以用于请求消息、又可用于响应消息
Connection:用于指定处理完本次请求/响应后,是否还要继续保持连接。
Date:产生当前消息的时间。
Pragma:no-cache.
Cache-Control:指示浏览器或服务器缓存的具体策略
Content-Length:表示(请求/响应)正文的长度

6.2请求头

Accept:浏览器可接受的MIME类型。
Accept-Charset:浏览器可接受的字符集。
Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。
Servlet能够向支持gzip的浏览器返回经gzip编码的html页面。许多情形下这可以减少5到10倍的下载时间。
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Connection:表示是否需要持久连接。
Content-Length:表示请求消息正文的长度。
Host:初始URL中的主机和端口。
Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。
User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。

6.3响应头

Allow 服务器支持哪些请求方法(如GET、POST等)
Server 处理请求的原始服务器的软件信息
Location 表示客户应当到哪里去提取文档。
Refresh:告诉浏览器过n秒后自动刷新页面
Content-Type 表示实体文档属于什么MIME类型。
Content-Length 返回的实体内容的长度
Last-Modified 文档的最后改动时间。
Content-Location:实体所在的实际位置路径

7.get方式和post方式的区别

1.请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接。较不安全。
   post的参数通过请求实体(Request body)传输,不会显示在URL中,相对安全。
2.get的参数长度有限制,长度视浏览器而定一般在2k左右。
   post的长度理论上是无限的
3.GET请求会被浏览器主动cache(缓存),而POST不会,除非手动设置。
4.GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
5.GET方式一般用来获取数据,POST方式一般用来提交数据

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

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

HTTP 之 HTTP协议(HTTP协议概述HTTP消息缓存控制相关头部Cookie相关头部)

HTTP协议

Linux-http协议(应用层协议)-http概述-http格式-http版本-http方法-http状态码

大话http协议

Http协议简单解析