zoukankan      html  css  js  c++  java
  • Http协议之Request和Response

    GET / HTTP/1.1表示向服务器用GET方式请求首页,使用HTTP/1.1协议

    Cache-Control
    作用: 用来指定Response-Request遵循的缓存机制。各个指令含义如下
    Cache-Control:Public 可以被任何缓存所缓存()
    Cache-Control:Private 内容只缓存到私有缓存中
    Cache-Control:no-cache 所有内容都不会被缓存

    Accept
    作用: 浏览器端可以接受的媒体类型,
    例如: Accept: text/html 代表浏览器可以接受服务器回发的类型为 text/html 也就是我们常说的html文档,
    如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)
    通配符 * 代表任意类型
    例如 Accept: */* 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)

    Accept-Encoding:
    作用: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate),(注意:这不是只字符编码);
    例如: Accept-Encoding: gzip, deflate

    Accept-Language
    作用: 浏览器申明自己接收的语言。
    语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等;
    例如: Accept-Language: en-us

    User-Agent
    作用:告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本.
    我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
    例如: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)

    Accept-Charset
    作用:浏览器申明自己接收的字符集,这就是本文前面介绍的各种字符集和字符编码,如gb2312,utf-8(通常我们说Charset包括了相应的字符编码方案);

    Cookie:
    作用: 最重要的header, 将cookie的值发送给HTTP 服务器

    Content-Length
    作用:发送给HTTP服务器数据的长度。
    例如: Content-Length: 38

    Content-Type
    作用:
    例如:Content-Type: application/x-www-form-urlencoded
    text/html; charset=utf-8 表示返回数据的类型,charset正文编码
    服务器通过Content-Type告诉客户端响应的数据的类型,这样浏览器就根据返回数据的类型来进行不同的处理,如果是图片类型就显示,如果是文本类型就直接显示内容,如果用html类型就用浏览器显示内容.常用Content-Type:text/html、image/gif、image/jpeg、text/plain、text/javascript。这是为什么要的ashx中设置contenttype的原因,试着改成text/plain

    Referer:
    作用: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的,比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
    例如: Referer:http://translate.google.cn/?hl=zh-cn&tab=wT

    Transport 头域
    Connection
    例如: Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
    例如: Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。

    Host(发送请求时,该报头域是必需的)
    作用: 请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的
    例如: 我们在浏览器中输入:http://www.guet.edu.cn/index.html
    浏览器发送的请求消息中,就会包含Host请求报头域,如下:
    Host:http://www.guet.edu.cn
    此处使用缺省端口号80,若指定了端口号,则变成:Host:指定端口号

    Cache头域

    Date
    作用: 生成消息的具体时间和日期
    例如: Date: Sat, 11 Feb 2012 11:35:14 GMT

    Expires
    作用: 浏览器会在指定过期时间内使用本地缓存
    例如: Expires: Tue, 08 Feb 2022 11:35:14 GMT

    Vary
    作用:
    例如: Vary: Accept-Encoding

    Cookie/Login 头域

    P3P
    作用: 用于跨域设置Cookie, 这样可以解决iframe跨域访问cookie的问题
    例如: P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR

    Set-Cookie
    作用: 非常重要的header, 用于把cookie 发送到客户端浏览器, 每一个写入cookie都会生成一个Set-Cookie.
    例如: Set-Cookie: sc=4c31523a; path=/; domain=.acookie.taobao.com
    Entity头域

    ETag
    作用: 和If-None-Match 配合使用。 (实例请看上节中If-None-Match的实例)
    例如: ETag: "03f2b33c0bfcc1:0"

    Last-Modified:
    作用: 用于指示资源的最后修改日期和时间。(实例请看上节的If-Modified-Since的实例)
    例如: Last-Modified: Wed, 21 Dec 2011 09:09:10 GMT

    Content-Type
    作用:WEB服务器告诉浏览器自己响应的对象的类型和字符集,
    例如:
    Content-Type: text/html; charset=utf-8
    Content-Type:text/html;charset=GB2312
    Content-Type: image/jpeg

    Content-Length
    指明实体正文的长度,以字节方式存储的十进制数字来表示。在数据下行的过程中,Content-Length的方式要预先在服务器中缓存所有数据,然后所有数据再一股脑儿地发给客户端。
    例如: Content-Length: 19847

    Content-Encoding
    WEB服务器表明自己使用了什么压缩方法(gzip,deflate)压缩响应中的对象。
    例如:Content-Encoding:gzip

    Content-Language

    作用: WEB服务器告诉浏览器自己响应的对象的语言者
    例如: Content-Language:da

    Miscellaneous 头域

    Server:
    作用:指明HTTP服务器的软件信息
    例如:Server: Microsoft-IIS/7.5

    X-AspNet-Version:
    作用:如果网站是用ASP.NET开发的,这个header用来表示ASP.NET的版本
    例如: X-AspNet-Version: 4.0.30319

    X-Powered-By:
    作用:表示网站是用什么技术开发的
    例如: X-Powered-By: ASP.NET

    Transport头域

    Connection
    例如: Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
    例如: Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭, 当客户端再次发送Request,需要重新建立TCP连接。

    Location头域

    Location
    作用: 用于重定向一个新的位置, 包含新的URL地址

    HTTP协议是无状态的和Connection: keep-alive的区别
    无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系

    HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)

    从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
    Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间

  • 相关阅读:
    将网址设为首页和添加到收藏夹(JS脚本)
    窗体居中一句话
    链接跳转JS
    工厂学习心得(三)Asp.net
    工厂模型学习心得(一)(ASP.Net)
    ubuntu终端快捷键
    Win7锐捷:无法找到网卡或系统未完成网卡初始化操作.请稍后再尝试认证
    Xming的使用
    在Windows上建立ssh服务器
    Windows XP循环启动
  • 原文地址:https://www.cnblogs.com/genesis/p/4661810.html
Copyright © 2011-2022 走看看