zoukankan      html  css  js  c++  java
  • http协议的相关知识

        因为如今的工作设计的Web开发,因此了解了一下Http协议。

    在阅读了这篇文章HTTP协议具体解释(真的非常经典)后,总结了相关经常使用知识并列在此处以方便以后的查询。

    HTTP协议的主要特点可概括例如以下:
    1.支持客户/server模式。
    2.简单高速:客户向server请求服务时,仅仅需传送请求方法和路径。请求方法经常使用的有GET、HEAD、POST。每种方法规定了客户与server联系的类型不同。

    因为HTTP协议简单。使得HTTPserver的程序规模小,因而通信速度非常快。
    3.灵活:HTTP同意传输随意类型的数据对象。正在传输的类型由Content-Type加以标记。


    4.无连接:无连接的含义是限制每次连接仅仅处理一个请求。

    server处理完客户的请求,并收到客户的应答后,即断开连接。採用这样的方式能够节省传输时间。


    5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着假设兴许处理须要前面的信息,则它必须重传。这样可能导致每次连接传送的数据量增大。还有一方面,在server不须要先前信息时它的应答就较快。


    HTTP URL (URL是一种特殊类型的URI,包括了用于查找某个资源的足够的信息)的格式例如以下:

    http://host[":"port][abs_path]
    http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI。假设URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自己主动帮我们完毕。
    eg:
    1、输入:www.guet.edu.cn
    浏览器自己主动转换成:http://www.guet.edu.cn/
    2、http:192.168.0.116:8080/index.jsp

    User-Agent

    我们上网登陆论坛的时候,往往会看到一些欢迎信息,当中列出了你的操作系统的名称和版本号,你所使用的浏览器的名称和版本号。这往往让非常多人感到非常奇妙,实际上,server应用程序就是从User-Agent这个请求报头域中获取到这些信息。

    User-Agent请求报头域同意client将它的操作系统、浏览器和其他属性告诉server。

    只是,这个报头域没必要的,假设我们自己编写一个浏览器,不使用User-Agent请求报头域,那么server端就无法得知我们的信息了。
    在Android中获取系统的userAgent代码例如以下:System.getProperty("http.agent");在我的手机上打印出:
    Dalvik/1.6.0 (Linux; U; Android 4.3; GT-I9300 Build/JSS15J)


    Accept-Encoding
    HTTP Header中Accept-Encoding 是浏览器发给server,声明浏览器支持的编码类型
    常见的有
    Accept-Encoding: compress, gzip //支持compress 和gzip类型
    Accept-Encoding: //默认是identity
    Accept-Encoding: * //支持全部类型 Accept-Encoding: compress;q=0.5, gzip;q=1.0//按顺序支持 gzip , compress
    Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 // 按顺序支持 gzip , identity
    server返回的相应的类型编码header是 content-encoding.server处理accept-encoding的规则例如以下所看到的 1. 假设server能够返回定义在Accept-Encoding 中的不论什么一种Encoding类型, 那么处理成功(除非q的值等于0, 等于0代表不可接受)


  • 相关阅读:
    【Unity与Android】02-在Unity导出的Android工程中接入Google AdMob广告
    【Unity与Android】01-Unity与Android交互通信的简易实现
    Unity3D热更新之LuaFramework篇[10]--总结篇
    Unity3D热更新之LuaFramework篇[09]--资源热更新与代码热更新的具体实现
    Unity3D热更新之LuaFramework篇[08]--热更新原理及热更服务器搭建
    Unity3D热更新之LuaFramework篇[07]--怎么让unity对象绑定Lua脚本
    Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的
    Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween
    Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法
    Unity3d之-使用BMFont制作美术字体
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6846206.html
Copyright © 2011-2022 走看看