Http协议

Posted dajingshao

tags:

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

什么是协议:双方在交互、通讯的时候, 遵守的一种规范、规则。

 

http协议:针对网络上的客户端 与 服务器端在执行http请求的时候,遵守的一种规范。 其实就是规定了客户端在访问服务器端的时候,要带上哪些东西, 服务器端返回数据的时候,也要带上什么东西。

 

版本

  1.0:请求数据,服务器返回后, 将会断开连接

  1.1:请求数据,服务器返回后, 连接还会保持着。 除非服务器 | 客户端 关掉。 有一定的时间限制,如果都空着这个连接,那么后面会自己断掉。

 

Http请求数据解释:

请求的数据里面包含三个部分内容 : 请求行 、 请求头 、请求体

请求行:

  POST /examples/servlets/servlet/RequestParamExample HTTP/1.1

  POST : 请求方式 ,以post去提交数据
  /examples/servlets/servlet/RequestParamExample
  请求的地址路径 , 就是要访问哪个地方。
  HTTP/1.1 协议版本

请求头:

  Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif,   image/pjpeg, application/x-ms-xbap, */*
  Referer: http://localhost:8080/examples/servlets/servlet/RequestParamExample
  Accept-Language: zh-CN
  User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
  Content-Type: application/x-www-form-urlencoded
  Accept-Encoding: gzip, deflate
  Host: localhost:8080
  Content-Length: 31
  Connection: Keep-Alive
  Cache-Control: no-cache

  Accept: 客户端向服务器端表示,我能支持什么类型的数据。
  Referer : 真正请求的地址路径,全路径
  Accept-Language: 支持语言格式
  User-Agent: 用户代理 向服务器表明,当前来访的客户端信息。可以判断是pc端还是手机端
  Content-Type: 提交的数据类型。经过urlencoding编码的form表单的数据
  Accept-Encoding: gzip, deflate : 压缩算法 。
  Host : 主机地址
  Content-Length: 数据长度
  Connection : Keep-Alive 保持连接
  Cache-Control : 对缓存的操作

请求体:

浏览器真正发送给服务器的数据
发送的数据呈现的是key=value ,如果存在多个数据,那么使用 &

firstname=zhang&lastname=sansan

 

Http响应数据解释:

请求的数据里面包含三个部分内容 : 响应行 、 响应头 、响应体

  HTTP/1.1 200 OK
  Server: Apache-Coyote/1.1
  Content-Type: text/html;charset=ISO-8859-1
  Content-Length: 673
  Date: Fri, 17 Feb 2017 02:53:02 GMT

  ...这里还有很多数据...

响应行:

  HTTP/1.1 200 OK

  协议版本

  状态码

    200 : 成功,正常处理,得到数据。
    403 : for bidden 拒绝
    404 : Not Found
    500 : 服务器异常

  OK 对应前面的状态码

响应头:

  Server: 服务器是哪一种类型。 Tomcat
  Content-Type : 服务器返回给客户端你的内容类型

  Content-Length : 返回的数据长度

  Date : 通讯的日期,响应的时间

 

Get和Post请求区别:

  1、请求路径不同,post请求,在url后面不跟上任何数据,get会在url后面以问号带参的形式

  2、带上的数据不同,post会使用流的方式写数据,get是在地址栏写数据

  3、由于post使用流的方式写数据,一定需要一个Content-Lenght的头来说明数据的长度有多少

  4、post不限制数据的大小,get只能待1kb

  5、post安全性高,get有安全隐患

 

Web资源

  在http协议当中,规定了请求和响应双方, 客户端和服务器端。与web相关的资源。

  有两种分类

    静态资源:html 、 js、 css

    动态资源:servlet/jsp

  如果设置了代理服务器nginx

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

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

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

HTTP协议

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

大话http协议

Http协议简单解析