首页 > 其他分享 >http了解

http了解

时间:2022-10-12 16:02:10浏览次数:59  
标签:协议 HTTP 请求 请求者 http 响应 了解 服务器

转载至:https://zhuanlan.zhihu.com/p/45173862

1. HTTP协议

  HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(www)服务器传输文本到本地浏览器的传送协议,可以认为是客户端和服务端进行数据传输的一种规范。它是基于TCP/IP通讯协议来传输数据的。

  HTTP是一种属于应用层面向对象的协议。

  特点:

  1.)支持客户/服务器模式。

  2.)简单快速:客户向服务器请求服务时,只需要传递请求方法(GET、POST等)和路径。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,是的HTTP服务器的规模很小,所以通讯速度很快。

  3.)无连接:无连接指服务器完成一次客户的请求后,就会断开当前连接,下次再进行数据处理时,重新建立连接。采用这种方式可以节省传输时间。后来可以通过Connection:Keep-Alive来实现长连接。

  4.)无状态:HTTP协议是无状态(协议对于事物的处理没有记忆的能力)协议。也就是当我们在处理数据的时候需要用到前面的信息的时候,它是无法获取到的,只能通过重新传送来获取这个数据,这样有时候会导致每次传输的数据特别大(或者比正常情况多)。但是在另一方面看,当他不需要前面的数据的时候,这个传输速度会很快。

  5.)灵活:HTTP允许接受任意类型的数据对象。正在传输的类型可以有Content-Type来进行标记

2.HTTP请求(request)

  具体参考下图: 

 

   请求行:

    Method:各种请求方法,即:GET、POST、PUT等。

    Request-URL:请求地址。

    Http-version:http版本。

  请求头部:

    由许多键值对组成,包含客户端向服务器附送一些自身的信息,用来业务使用等。主要列举一些,如下:

    Accept  指定客户端能够接收的内容类型    例:Accept:text/plain,text/html

    Accept-Charset  浏览器可以接受的字符编码集,分别是GB2312、utf-8和任意字符,优先顺序入排列顺序  例:Accept-Charset:GB2312,utf-8;q=0.7,*;q=0.7

    Accept-Encoding:gzip,deflate    浏览器支持的压缩编码是gzip和deflate

    User-Agent:Mozilla/5.0(compatible;域名)    使用的用户代理是Mozilla/5.0(compatible;域名)

    Host:域名    表示请求的服务器网址

    Connection:Keep-Alive  表示是否需要持久连接,HTTP1.1默认持久连接   

    Accept-Language:en,zh    浏览器可以接受的语言 

    Authorization    Http授权的授权证书类型

    Referer    指的是当前请求的来源

3.HTTP响应(response)

   具体参考下图:

   

    状态行:包括HTTP版本信息、状态码、状态描述。

    状态码

      状态码由三位数字组成,第一位数字定义了相应类型,共五种状态:

        1xx:指示信息,表示请求已经接收,继续下一步处理

        2xx:成功,表示请求已被服务器成功接收

        3xx:重定向

        4xx:客户端错误,一般为参数或地址错误

        5xx:服务端错误

      各个状态码意义

        100:继续,客户端继续请求

        101:切换协议,服务器根据客户端的请求切换协议

        200:请求成功

        201:请求成功并创建了新的资源

        202:已接收请求,但未处理完成

        203:非授权信息,服务器已成功处理了请求,但返回的信息可能来之另一个源

        204:无内容,服务器成功处理了请求,但是没有返回任何内容

        205:重置内容,服务器成功处理了请求,但是没有返回任何内容

        206:部分内容,服务器成功处理了请求,但是没有返回任何内容

        300:被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息

        301:永久移动,请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

        302:临时移动,服务器目前从不同的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

        303:请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码

        304:未修改,次从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容

        305:使用代理,请求这只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求这应该使用代理。

        307:临时重定向,服务器目前从不同的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

        400:错误请求,服务器端不理解请求的语法

        401:未授权,请求要求验证身份信息,对于需要登录认证的网页,有可能返回此状态

        403:服务器拒绝请求

        404:服务器找不到请求的页面

        405:方法禁用,禁止使用请求中指定的方法

        406:无法使用请求的内用响应请求的网页

        407:应代理授权,指定请求者应当授权使用代理

        408:服务器请求超时

        409:服务器在完成请求时发生冲突

        410:请求资源已被删除

        411:服务器不接受不含有效内容长度表头字段的请求

        412:服务器为满足请求者在请求中设置的其中一个前提条件

        413:请求实体过大

        414:请求的url过长

        415:服务器无法处理请求的媒体格式,有可能在请求时不加content-type汇报这个错误

        416:请求范围不符合要求

        417:服务器为满足“期望”请求标头字段的要求

        500:服务器遇到错误

        501:服务器不支持请求的功能,请求方法错误可能报这个错误

        502:错误网关,服务器作为网关或者代理,从上游服务器收到无效响应  

        503:服务器目前无法使用

        504:服务器充当网关或者代理时,没有及时从上游服务器收到响应

        505:服务器不支持目前的http协议

4.HTTP缺点:

  1.)通讯使用明文(不加密),内容可能会被窃听

  2.)不验证通信方的身份,因此有可能遭遇伪装

  3.)无法证明报文的完整性,有可能已被篡改

  详细信息,可看https://blog.csdn.net/wangxp423/article/details/80033225

      

标签:协议,HTTP,请求,请求者,http,响应,了解,服务器
From: https://www.cnblogs.com/lisir-blogshare/p/16784782.html

相关文章

  • 【AI白身境】只会用Python?g++,CMake和Makefile了解一下
    今天是新专栏《AI白身境》的第六篇,所谓白身,就是什么都不会,还没有进入角色。对于大部分小白来说,因为python用的太爽,以致于或许都没有听说过CMake。python是脚本语言,而当前大......
  • 用docker布tomcat访问出现HTTP状态404-未找到“源服务器未能找到目标资源的表示或者是
    docker部署tomcat访问显示这个的原因是在访问的时候没有访问到web文件的网页页面进入容器查看webapps文件夹中没有任何文件  将.dist文件夹中的页面文件复制到weba......
  • [2core]基于httpclient实现负载均衡
    一、准备由于没有采用asp.netcore框架提供的HttpClientFactory和依赖注入方式使用HttpClient,所以从asp.net迁移到asp.netcore变化并不大,而且HttpClient的使用也基本没有......
  • Jmeter测试http请求
    修改测试计划名称:添加线程组设置线程组添加HTTP请求假设台控制器中的接口:对应路径:localhost:6001/fun1@GetMapping("/fun1")publicStringfun1(){......
  • 测试 HTTP 请求和响应的各种信息
    httpbin.org这个网站能测试HTTP请求和响应的各种信息,比如cookie、ip、headers和登录验证等,且支持GET、POST等多种方法,对web开发和测试很有帮助。它用Python+F......
  • LVS+Keepalived+httpd安装及配置
    LVS+Keepalived+httpd安装及配置目录1环境...12安装LVS软件(分别在LVS-Master和LVS-Backup中)...11.1.查看是否有IPVS模块...11.2.安装IPVS管理工具...13安装keepal......
  • 华为再出新品:GaussDB(for Influx)数据库的魅力了解一下
    华为再出新品:GaussDB(forInflux)数据库的魅力了解一下​华为自用的GaussDB(forInflux)数据库逐渐深入大众视野,到底值不值得期待?​时序数据库想必大家都有所耳闻,现在在很......
  • 了解 EventLog Analyzer Manager Engine 的 7 个最重要的功能
    EventLogAnalyzer是一种便捷的信息安全和事件管理(SIEM)解决方案,有助于提高网络安全性并满足审计要求。EventLogAnalyzer该程序还能够收集、分析、搜索、报告和存档从各......
  • PHP使用华科云HTTP代码
    //要访问的目标页面$targetUrl="http://ip.hahado.cn/ip";//$targetUrl="http://ip.hahado.cn/switch-ip";//$targetUrl="http://ip.hahado.cn/current-......
  • C Sharp中使用HTTP的代码
    在云中,可以加入HTTP来提高抓取成功概率,以华科HTTP为例:HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create("​​http://ip.hahado.cn/ip​​​");WebProxymyProx......