• 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有很多参数,用到的时候自行去查询

  • 相关阅读:
    js,jQuery实现可关闭悬浮框广告特效,兼容(谷歌,火狐,Ie)
    各种选择框jQuery的选中方法
    表单校验demo
    两种方法实现城市级联菜单
    树形菜单
    匿名函数和鼠标移入移除事件
    多线程实例
    Lock锁
    Oracle语句
    Java NIO
  • 原文地址:https://www.cnblogs.com/ronyjay/p/8682163.html
Copyright © 2020-2023  润新知