zoukankan      html  css  js  c++  java
  • http基础

    常用浏览器
      Firefox   IE   Chrome   Opera   Safari

    TCP三次握手(建立连接)

    TCP四次挥手(断开连接)

    URI

    http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1
    协议     登录信息   服务器地址    端口号  文件路径  查询字符串 片段标识符         
    
    协议:      获取访问资源时要指定协议类型
    登陆信息:    身份认证
    服务器地址:   可以是DNS解析的域名也可以是IPv4地址
    端口号:     指定服务器提供Web服务的端口
    文件路径:    指定服务器上的文件路径来定位特定资源
    查询字符串:   针对已指定的文件路径内的资源,使用查询字符串传入任意参数,获取特定资源
    片段标识符:   可以标记处已获取资源中的子资源

    Method

    1 GET     请求访问已被URI识别的资源
    2 POST     传输实体的主体
    3 PUT     上传文件
    4 HEAD     获得报文的首部
    5 DELETE    按请求URI删除指定的资源
    6 OPTIONS   查询服务器端支持的HTTP方法种类
    7 TRACE     让Web服务器将之前的请求通信环回给客户端
    8 CONNECT    在与代理服务器通信时建立隧道

    持久连接
      keep-alive字段
        只要任意一端没有明确提出断开连接,则保持TCP连接状态
        为传送大量数据提供服务,减少TCP连接重复建立和断开

    状态码

      1XX     信息性状态码 接收的请求正在处理
      2XX      成功状态码 请求正常处理完毕
      3XX      重定向状态码 需要进行附加操作以完成请求
      4XX     客户端错误状态码 服务器无法处理请求
      5XX      服务器错误状态码 服务器处理请求出错

    经常遇到的状态码

    200 OK
        # 表示从客户端发来的请求在服务器端被正常处理了
    
    204 No Content
        # 表示请求已成功处理,但在返回的响应报文中不含实体的主体部分
    
    206 Partial Content
        # 表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求
    
    301 Moved Permanently
        # 永久性重定向
    
    302 Found
       #  临时性重定向
    
    303 See Other
        # 表示请求对应的资源存在着另一个URI
    
    304 Not Modified
        # 表示服务器没有改变的资源
    
    307 Temporary Redirect
        # 临时重定向
    
    400 Bad Request
        # 表示请求报文中存在语法错误
    
    401 Unauthorized
        # 表示发送的请求需要有通过HTTP认证的认证信息
    
    403 Forbidden
        # 表明对请求资源的访问被服务器拒绝了
    
    404 Not Found
        # 表明服务器上无法找到请求的资源
    
    500 Internal Server Error
        # 表明服务器本身发生错误
    
    503 Service Unavailable
        # 表明服务器处于超负载或正在进行停机维护,现在无法处理请求
    View Info

    代理
      代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端

    网关
      网关是转发其它服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关

    隧道
      隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双发通信连接的应用程序

    缓存
      缓存服务器是代理服务器的一种,当代理转发服务器返回的响应时,代理服务器会保存一份资源的副本,可避免多次从源服务器转发资源

    HTTP首部字段

    通用首部字段(请求和响应附带)
        # Cache-Control              控制缓存的行为
        # Connection                  逐跳首部、连接的管理
        # Date                           创建报文的日期时间
        # Pragma                       报文指令
        # Trailer                         报文末端的首部一览
        # Transfer-Encoding        指定报文主体的传输编码方式
        # Upgrade                      升级为其它协议
        # Via                             代理服务器的相关信息
        # Warning                      错误通知
    
    请求首部字段 
        # Accept                        用户代理可处理的媒体类型
        # Accept-Charset            优先的字符集
        # Accept-Encoding          优先的内容编码
        # Accept-Language         优先的语言
        # Authorization               Web认证信息
        # Expect                        期待服务器的特定行为
        # From                           用户的电子邮件地址
        # Host                           请求资源所在服务器地址
        # If-Match                      比较实体标记(Etag)
        # If-Modified-Since          比较资源的更新时间
        # If-None-Match             比较实体标记(与If-Match相反)
        # If-Range                     资源未更新时发送实体Byte的范围请求
        # If-Unmodified-Since     与If-Modified-Since相反
        # Max-Forwards              最大传输逐跳数
        # Proxy-Authorization      代理服务器要求客户端的认证信息
        # Range                         实体的字节范围请求
        # Referer                        对请求中URI的原始获取方
        # TE                              传输编码的优先级
        # User-Agent                  HTTP客户端身份
    
    响应首部字段
        # Accept-Ranges             是否接受字节范围请求
        # Age                             推算资源创建经过时间
        # Etag                            资源的匹配信息
        # Location                      令客户端重定向至指定URI
        # Proxy-Authenticate       代理服务器对客户端的认证信息
        # Retry-After                  对再次发起请求的时机要求
        # Server                         HTTP服务器的安装信息
        # Vary                            代理服务器缓存的管理信息
        # WWW-Authenticate       服务器对客户端的认证信息
    
    实体首部字段
        # Allow                           资源可支持的HTTP方法
        # Content-Encoding         实体主体使用的编码方式
        # Content-Language        实体主体的自然语言
        # Content-Length            实体主体的大小(单位:字节)
        # Content-Location          替代对应资源的URI
        # Content-MD5                实体主体的报文摘要
        # Content-Range             实体主体位置范围
        # Content-Type               实体主体的媒体类型
        # Expires                        实体主体过期的日期时间
        # Last-Modified               资源的最后修改日期时间
    View Info

    重要字段解析

    # Transfer-Encoding
        规定了传输报文主体时采用的编码方式
    
    # Accept 
        用户代理能够处理的媒体类型及媒体类型的相对优先级
        text/html,text/plain,text/css
        application/xhtml+xml,application/xml
        image/jpeg,image/gif,image/png
        video/mpeg,video/quicktime
    
    # Content-Type
        实体主体内对象的媒体类型
    
    # Accpet-Charset
        通知服务器用户代理支持的字符集及字符集的相对优先顺序
    
    # Accept-Encoding
        告知服务器用户代理支持的内容编码及内容编码的优先级顺序
        gzip,compress,deflate,identity
    
    # Content-Encoding
        告知客户端服务器对实体部分选用的内容编码方式
    
    # Accept-Language
        告知服务器用户代理能够处理的自然语言集及自然语言集的相对优先级
    
    # Content-Language
        告知客户端实体主体使用的自然语言
    
    # Authorization
        告知服务器用户代理的认证信息
    
    # Host
        告知服务器请求的资源所处的互联网主机名和端口号
        和单台服务器分配多个域名的虚拟主机工作机制有很密切的关联
    
    # If-Match
        只有当If-Match的字段值根Etag值匹配时,服务器才会接受请求
    
    # User-Agent
        将请求的浏览器和用户代理名称等信息传达给服务器
    
    # Age
        告知客户端,源服务器在多久之前创建了相应,单位为秒
    
    # ETag
        实体标识
    
    # Location
        将响应接收方引导至某个请求URI位置不同的资源,配合重定向使用
    
    # Content-Location
        报文主体部分对应的URI
    
    # Server
        告知客户端当前服务器上安装的HTTP服务器应用程序的信息
    
    # WWW-Authenticate
        用于HTTP访问认证
    
    # Allow
        通知客户端能够支持Request-URI指定资源的所有HTTP方法
    
    # Content-Length
        实体主体部分的大小
    
    # Content-MD5
        报文主体MD5值,给客户端验证传输是否完整
    
    # Expires
        资源失效的日期告知客户端
    View Info

    Cookie首部字段

    Set-Cookie
        # expires
            指定浏览器可发送Cookie的有效期
            省略时,默认浏览器关闭Cookie失效
    
        # path
            限制指定Cookie的发送范围的文件目录
    
        # domain
            domain属性指定的域名可做到与结尾匹配一致
            指定example.com后,www.example.com和www2.example.com等都可以发送Cookie
    
        # secure
            限制Web页面仅在HTTPS安全连接时,才可以发送Cookie,非HTTPS的连接Cookie不会被回收
    
        # HttpOnly
            JS脚本无法获取Cookie,防止XSS攻击
    
    Cookie
        Cookie主体,多个Cookie可以连续放置
    View Info

    Session
    使用Cookie管理Session
    客户端发送登陆信息进行身份认证,然后把用户的认证状态与Session ID绑定后记录在服务器端,返回响应时会在首部字段SetCookie内写入Session ID

    扩展首部字段

    # X-Frame-Options
        控制网站内容在其他Web网站的Frame标签内的显示问题,防止点击劫持攻击
        DENY:拒绝
        SAMEORIGIN:仅同源域名下的网页匹配时许可
    
    # X-XSS-Protection
        控制浏览器XSS防护机制的开关
        XSS过滤设置,0 无效状态 1 有效状态
    
    # DNT
        拒绝被精确广告追踪
    同意被追踪
    拒绝被追踪
    View Code

    HTTP的缺点
    ①通信使用明文,内容可能会被窃听
    ②不验证通信方的身份,因此有可能遭遇伪装
    ③无法证明报文的完整性,所以有可能已遭遇篡改

    HTTPS 

    HTTPS = HTTP + 加密 + 认证 + 完整性保护
    HTTPS通信接口部分使用 SSL协议 和 TLS协议 替代
    TCP建立阶段采用非对称加密认证,数据传输阶段采用对称加密
    服务器端公钥合法性正确性由CA鉴定

  • 相关阅读:
    ts 问号点 ?.
    moment获取本月、上个月、近三个月时间段
    iframe优缺点
    Git问题解决方案:不建议在没有为偏离分支指定合并策略时执行pull操作(Pulling without specifying how to reconcile divergent branches)
    Mac上git自动补全功能
    webstorm 使用积累
    什么是EPG?
    chrome浏览器devtools切换主题(亮色,暗色)
    python—requests的基本使用
    Chrome Devtool Performance
  • 原文地址:https://www.cnblogs.com/cq146637/p/8125338.html
Copyright © 2011-2022 走看看