HTTP协议简介

HTTP协议:超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。主要被用于在Web浏览器和网站服务器之间传递信息。 

HTTP协议和HTTPS协议的区别

HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS和HTTP的区别主要为以下四点:

  1. https协议需要到ca申请证书,一般免费证书很少,需要交费。
  2. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

HTTP协议的工作流程

HTTP的请求方法

OPTIONS - 允许客户端查看服务器的性能。。
HEAD- 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
GET -请求指定的页面信息,并返回实体主体。
POST - 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT - 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE - 请求服务器删除指定的页面。
TRACE- 回显服务器收到的请求,主要用于测试或诊断。
CONNECT -HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

HTTP请求解析

http请求由三部分组成

 下面是一个实际的请求报文

在chrome中,可以使用F12,点击Network,查看request,点击viewsource,比如

我访问雷蛇的某一个网站,

可以看出该请求是用GET的方式,请求/wishlist,采用HTTP/ 1.1版本,Host为deals.razer.com

steam上对一个评测进行投票,是采用的post请求的方式。请求体在下面的Form Data中

HTTP响应解析

http响应也由三部分组成

 下面是一个实际的响应报文 

第一行是协议及版本,状态码及状态描述

第二部分是响应头

第三部分是响应体

常见的响应码状态:

  • 1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急...
  • 2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
  • 3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
  • 4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
  • 5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。

 还是在chrome中用F12查看刚刚雷蛇的网站

第一行包括了协议版本,状态码,以及状态描述

点击旁边的response可以查看响应体,响应体的格式为content-type所表明的text/html

curl命令的使用

在win下使用curl,先下载https://curl.haxx.se/download.html#Win64,并将路径添加到环境变量中

在cmd中输入,curl --help,如果显示如下,就成功了

 

输入,请求豆瓣电影Top250

curl https://movie.douban.com/top250 -I -v

curl有很多参数,用到的时候自行去查询

原文地址:https://www.cnblogs.com/ronyjay/p/8682163.html