006-http协议特征

006-http协议特征

URL

Uniform Resource locator

基本语法:
    ://:@:/;?#
        params:参数
        query:查询
        frag:锚定,表示指定页面中的某个位置

http协议

各种解释:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html

version

http/0.9    http/1.0    http/1.1    http/2.0

basic features

connectionless

HTTP client建立HTTP请求后就会断开和server的链接并等待HTTP响应;server处理了HTTP请求之后就和client重新建立链接并发送HTTP响应。也就是说,每次连接只能处理一个请求。

media independent

表示HTTP允许传输任意类型的数据对象(MIME-Type),正在传输的类型由Content-Type加以标记。

stateless

无连接表示HTTP协议中的client和server只会在请求的过程中知道对方的存在,一旦请求完成,client和server互不知道彼此的状态。比如用户已经获得了一个页面,但是刷新的时候,server并不知道client已经拥有了这个页面,所以server会乐此不疲地重新传送响应。
由于HTTP协议的无状态性,随着web的发展,server有了需要知道client端状态的需求,cookie和session就是解决这种问题的两种机制

cookie即在client发送第一个请求后,server处理request的过程中,返回response+cookie,在下一次client向server发送请求的时候,会发送request+cookie,这样server就知道了client的状态。

session即server端保存client的状态信息

http事务

request

    request报文

          
        

        

response

    response报文

          
        

        

field explanation


.tg {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg .tg-uqo3{background-color:#efefef;text-align:center;vertical-align:top}
.tg .tg-xgs0{background-color:#26ade4;text-align:center;vertical-align:top}
.tg .tg-wyy1{background-color:#26ade4;text-align:center}
.tg .tg-j4kc{background-color:#efefef;text-align:center}

method version
GET HEAD POST PUT DELETE TRACE OPTIONS HTTP/major.minor
从服务器获取一个资源 只从服务器获取文档的响应首部 向服务器发送要处理的数据 将请求的主体部分存储在服务器上,这种方法很危险 请求删除服务器上指定的文档 追踪请求到达服务器中间经过的代理服务器 请求服务器返回对指定资源支持使用的请求方法 HTTP/1.1


.tg {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg .tg-uqo3{background-color:#efefef;text-align:center;vertical-align:top}
.tg .tg-xgs0{background-color:#26ade4;text-align:center;vertical-align:top}
.tg .tg-baqh{text-align:center;vertical-align:top}
.tg .tg-wyy1{background-color:#26ade4;text-align:center}
.tg .tg-j4kc{background-color:#efefef;text-align:center}

status reason-phrase entity-body
1xx 2xx 3xx 4xx 5xx 状态码所标记的状态的简要描述 请求附加的数据或响应时附加的数据
信息提示,请求接受,需要继续处理 请求已成功被服务器接收、理解、并接受 重定向:需要客户端采取进一步的操作才能完成请求 错误类信息,客户端错误 错误类信息,服务器端错误 比如:很抱歉,您要访问的页面不存在! 请求服务器返回对指定资源支持使用的请求方法
200 OK202 ACCEPT
301 Moved Permanently302 Move temporarily
400 Bad Request404 Not Found
502 Bad Gateway

协议查看或分析的工具:

tcpdump、tshark、wireshark

filed.headers

format: Name: Value

通用首部:

Date: 报文的创建时间
Connection:连接状态,如keep-alive, close
Via:显示报文经过的中间节点
Cache-Control:控制缓存
Pragma:用于兼容HTTP不同版本协议

请求首部:

Accept:通过服务器,client可接受的媒体类型;
Accept-Charset:通过服务器,client可接受的字符集
Accept-Encoding:接受编码格式(压缩等),如gzip
Accept-Language:接受的语言
Client-IP: client的IP地址
Host: 请求的服务器名称和端口号
Referer:包含当前正在请求的资源的上一级资源;表示从哪里引用而来
User-Agent:客户端代理,即浏览器类型,比如手机查看的页面和PC的就不一样

-

条件式请求首部:

    Expect:期望得到的信息
    If-Modified-Since:自从指定的时间之后,请求的资源是否发生过修改;这个可以用于浏览器缓存,如果没有修改就可以不刷新缓存等
    If-Unmodified-Since:自从指定的时间之后,请求的资源是否没有发生过修改;
    If-None-Match:本地缓存中存储的文档的ETag标签是否与服务器文档的Etag不匹配;
    If-Match:本地缓存中存储的文档的ETag标签是否与服务器文档的Etag匹配;

-

安全请求首部:

    Authorization:向服务器发送认证信息,如账号和密码;
    Cookie: 客户端向服务器发送cookie
    Cookie2:客户端向服务器发送cookie2

-

代理请求首部:

    Proxy-Authorization: 向代理服务器认证

-

响应首部:

信息性:

    Age:响应持续时长
    Server:服务器程序软件名称和版本

-

协商首部:某资源有多种表示方法时使用

    Accept-Ranges:服务器可接受的请求范围类型
    Vary:服务器查看的其它首部列表;

-

安全响应首部:

    Set-Cookie:向客户端设置cookie;
    Set-Cookie2: 向客户端设置cookie2
    WWW-Authenticate:来自服务器的对客户端的质询认证表单

实体首部:

Allow: 列出对此实体可使用的请求方法
Location:告诉客户端真正的实体位于何处
Content-Encoding:主体的编码格式
Content-Language:主体的语言
Content-Length: 主体的长度
Content-Location: 实体真正所处位置;
Content-Type:主体的对象类型

缓存相关:

ETag:实体的扩展标签;
Expires:实体的过期时间;
Last-Modified:最后一次修改的时间

你可能感兴趣的:(006-http协议特征)