近期没需求,也没什么心情去看书,就总结一下自己以前看的HTTP协议基础内容吧。(会很乱,可能不适合一点都没接触过HTTP协议的人观看)

一、HTTP Request header

1、Cache头域

if-Modified-since:缓存

if-None-Match:可提高性能(在Response中添加ETag信息,客户端再次请求资源,Request中加入if-None-Match(ETag的值),服务器验证ETag,若没改变返回状态码304,有改变,返回状态码200)

Pragma:防止页面被缓存

Cache-Control:Response—Request遵循的缓存机制

  public:可以被任何缓存所缓存

  private:内容只缓存在私有缓存中

  no-cache:所有内容都不会被缓存

2、Client头域

Accept:浏览器可以接受的文件类型(Accept:text/html 表示浏览器可接受服务器返回的文件类型为text/html)

Accept-Encodig:指定压缩方法,是否支持压缩,支持什么压缩方法(gzip、deflate)

Accept-Language:浏览器申明自己的接收语言

User-Accept:告知服务器客户端使用的操作系统与浏览器的名称和版本

Accept-chareset:浏览器申明自己接收的字符集。如gb2312,UTF_8

3、Cookie/Login头域

Cookie:将cookie的值发送给服务器

4、Entity头域

Content-Length:发送给HTTP服务器的数据长度

Content-Type:决定文件接收方将以什么形式、什么编码读取此文件

5、Miscellaneous头域

Referer:提供了Request的上下文信息,告诉服务器我是从哪个链接过来的

A------>B(B的服务器从Referer中统计有多少用户是从A过来的)

6、Transport头域

connection:Keep—alive            TCP连接不会关闭

connection:close                     一个Request完成后,TCP连接关闭

7、Host:发送请求时,该报头域是必需的。主要用于指定被请求资源的Internet主机和端口号,通常从HTTP URL 中提取出来

二、HTTP Response header

1、Cache头域

Date:生成消息的具体时间和日期

Expires:浏览器在指定过期时间内使用本地缓存

2、Cookie/Login头域

P3P:用户跨域设置cookie,可以解决iframe跨域访问cookie的问题

Set-Cookie:重要的header,用于把cookie发送到客户端浏览器,每一个写入cookie都会生成一个set-cookie

3、Entity头域

ETag:与if-None-Match配合使用

Last-Modified:用于指示资源的最后修改日期和时间

Content-Type:Web服务器告知浏览器自己响应对象的类型和字符集

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

Content-Encoding:Web服务器表明自己用了什么压缩方式(gzip、deflate)压缩响应中的对象

Content-Language:服务器告知浏览器自己响应的对象语言

4、Miscellaneous头域

Server:指明HTTP服务器的软件信息

X-Powered-By:表明网站是用什么技术开发的

X-AspNet-Version:如果网站是用Asp/Net开发的,这个header用来表明Asp/Net的版本

5、Transport头域

connection:Keep—alive            TCP连接不会关闭

connection:close                     一个Request完成后,TCP连接关闭

6、Location头域

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

三、网络分层(这个是顺手加上)

  下层只会向上层提供服务,但不会从上层获取服务。

1、OSI模型(从低到高)

物理层---->数据链路层---->网络层---->传输层---->会话层---->表示层---->应用层

2、TCP/IP模型(从低到高)

网络接口层------>网络层(IP)------>传输层(TCP、UDP)------>应用层(HTTP/FTP等协议)

3、实际应用中的因特网协议栈

物理层---->链路层---->网络层---->传输层---->应用层

四、HTTP认证过程

1、客户端发送HTTP Request给服务器;

2、Request中未包含Authorization header,服务器会返回一个401错误给客户端,且在Response中的header“www-Authenticate”中添加信息;

3、客户端将用户名和密码以base64加密后,放在Authorization中发送给服务器,认证成功;

4、服务器将Authorization header中的用户名和密码去除,进行验证。如果验证通过,将根据请求发送资源给客户端;

  HTTP OAuth认证:OAuth对于http来说,就是放在Authorization header中的不是用户名密码,而是一个token(令牌)。

  客户端的使用:客户端若要跟“使用基本认证的网站”进行交互,将用户名密码加载Authorization header中即可。

HTTP常见头域的更多相关文章

  1. HTTP头域列表与解释 之 request篇

    HTTP 头域是HTTP协议中请求(request)和响应(response)中的头部信息,其实就是HTTP通信的操作参数,告诉web服务器和浏览器怎样处理这个通信.HTTP头从一个请求信息或者响应信 ...

  2. 常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

  3. HTTP协议头域详解

    HTTP协议头域详解 Requests部分 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编 ...

  4. P-Called-Party-ID 头域的应用说明

    P-Called-Party-ID 头域的适用场景 P-Called-Party-ID 适用于 UAS 须要知道在代理将目标改写为Contact 地址之前请求中Request-URI的目的AOR的情况 ...

  5. HTTP协议header头域

    HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内 容请参考RFC2616.HTTP协议采用了请求/响应模型.客 ...

  6. P-Called-Party-ID头域

    典型的proxy server在路由 INVITE 请求到目标时插入 P-Called-Party-ID 头域.该头域用 porxy 收到请求的 Request-URI 填写. UAS 从几个已注冊的 ...

  7. Postman系列二:Postman中get接口实战讲解(接口测试介绍,接口测试流程,头域操作)

    一:接口测试介绍 接口测试:就是针对软件对外提供服务的接口输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能和接口描述文档的一致性. 接口测试好处:接口测试通常能对系统测试的更为彻底,更高的保障 ...

  8. Http头域字段详解

    HTTP(HyperTextTransferProtocol) 是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客 ...

  9. 什么是Web缓存控制(基于HTTP头域)

    这是一篇转载的知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中.为了简要起见,某些实现方面的细节被简化或省略了.如果你更关心细节实现则完全不必耐心看完本文,后 ...

随机推荐

  1. c# 正则表达式用法

    C#正则表达式Regex类的用法 更多2014/2/18 来源:C#学习浏览量:41529 学习标签: 正则表达式 Regex 本文导读:正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串, ...

  2. UTC与GMT时间

    整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated).UTC与格 ...

  3. Gerrit管理帐号

    文档 Gerrit服务器启动后,网站上有一个Documentation链接.点击后会看到四个选项: index,searching,uploading和access control 文档内容很多,不必 ...

  4. git学习(一):建立本地仓库和基本命令

    前沿 最近一直在做目标跟踪,开始一直是通过文件按日期命名的方式来区分版本的,实在是太麻烦了,现在下定决心学习一下git命令 基本概念 集中式:有一台中央服务器,每个人把需要改的部分拿回去改完再送回来 ...

  5. C#基础:委托

    委托是C#中最为常见的内容.与类.枚举.结构.接口一样,委托也是一种类型.类是对象的抽象,而委托则可以看成是函数的抽象.一个委托代表了具有相同参数列表和返回值的所有函数.比如: delegate in ...

  6. 未能加载文件或程序集“System.Data.SQLite”或它的一个依赖。试图加载格式不正确的程序

    Go to the IIS7 Application Pool -> advanced settings and set the 32-bit application to true.

  7. Python入门练习

    0.基本知识 Number.String.Lists 1.if判断的使用       

  8. [转]Nodejs基础中间件Connect

    Nodejs基础中间件Connect 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的J ...

  9. 【DP】HDU 1176

    HDU 1176 免费馅饼 题意:中文题目不解释. 思路:因为是从中间出发所以思路卡了许久,还在之前做了道HIHO入门的题.能想到的点,从时间思考,然后初始化1s的时候,4,5,6,的数值要特别赋值. ...

  10. BOM,文档宽高及窗口事件小析

    (一)BOM:Browser Object Model(浏览器对象模型)页面上所有的变量都是window的属性 一.方法:1. open(,)打开一个新窗口(页面)一参为页面地址url,二参为打开方式 ...