当客户端与服务器进行交互时,就存在web请求,这种请求都基于统一的应用层协议(http协议)交互数据。它允许将HTML文档从web服务器传送到web浏览器。

http协议是无状态的协议。无状态是指web浏览器和web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,web服 务器返回响应,连接就被关闭了,在服务器端不保留连接的有关信息。也就是说,HTTP请求只能由客户端发起,服务器端不能主动向客户端发送数据。

除了通过浏览器发起HTTP请求,也可以通过linux的curl命令发起HTTP请求。浏览器在HTTP协议方面只不过多了HTML渲染的功能,让用户看到更直观的界面。

URL统一资源定位符:

格式:scheme://login:password@address:port/path/to/resource?query_string#fragment

scheme协议名称:http,https(SSL),ftp,mailto(SMTP)

伪协议:一部分浏览器内部支持的协议并不需要向外部请求资源,而是调用本地浏览器的脚本解析功能或是其他功能。比如:javascript:和data:等。

login:password:访问资源的身份验证,此处身份验证的字段只与URL开端指定的协议有关,和实际请求的内容无关。如果没有身份验证字段,浏览器默认以匿名方式访问资源。

address:服务器地址   port:服务器端口

/path/to/resource:层级文件路径

?query_string:查询字符串(这里会引发跟多安全问题)

#fragment:片段ID

http请求:包括三部分,分别是请求行(请求方法,请求的资源路径,http版本),请求头(请求的主机地址,浏览器的标识),请求体(请求正文,可选,最常出现在POST方法中)。

请求头:

Host:用于指定请求的URL中的主机名称。

User-Agent:提供浏览器或其他发送HTTP请求的客户端软件的相关消息。

Referer:指示当前请求源自哪个URL

Accept:这个字段将客户端允许接受的内容类型传输给服务器端。

Accept-Language:用于声明浏览器可以支持什么语言。

Accept-Encoding:用于声明浏览器可以支持的编码类型。

Cookie:它是一段文本,用来表示请求者的身份(服务器使用Set-Cookie消息头来设置cookie,一般用于身份验证)

Connection:通知通信的另一方,是否在完成HTTP传输后关闭TCP连接。

x-forward-for:它代表请求端的IP,可以有多个,以逗号分开。

HTTP响应:也是包括三部分,响应行(HTTP版本,状态码以及消息"OK"),第二行至末尾的空白行是响应头,之后是响应正文,是服务器向客户端发送的HTML数据。

Accept-Ranges:

Content-Length:指定消息主体的字节长度。

Content-Type:规定消息主体内容类型

Conetent-Language:规定消息主题的语言

Date:表示消息产生的日期和时间。

Server:说明所使用的web服务器软件,和服务器操作系统

Set-cookie:用来向客户端传递/更新cookie。

Location:服务器通过这个头告诉浏览器去访问哪个页面,浏览器收到这个请求之后,会立即访问Location头所指向的页面。通常和302状态码使用。

Refresh:服务器通过Refresh头告诉浏览器定时刷新浏览器。

http请求方法:

GET POST HEAD(不会出现在响应消息里) TRACE(和ping命令类似) OPTIONS(会列出所能支持的方法列表) PUT DELETE CONNECT

HTTP状态码:是HTTP响应的必要部分。

200~299成功  300~399重定向和其他状态信息  400~499客户端错误  500~599服务器端错误

200 OK  301 Moved Permanently 302 Found 303 See Other

404 Not Found  403 Forbidden   401 Unauthorized  400 Bad Request

HTTP代理:

2_http协议详解的更多相关文章

  1. HTTP协议详解(转)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  2. HTTP协议详解

    Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  3. 动态选路、RIP协议&&OSPF协议详解

    动态选路.RIP协议&&OSPF协议详解 概念 当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.路由器之间必须采用选路协议进行通信,这样的选路协议 ...

  4. ASP.NET知识总结(3.HTTP协议详解)

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  5. 接口测试之HTTP协议详解

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  6. 计算机网络(12)-----HTTP协议详解

    HTTP协议详解 http请求 http请求由三部分组成,分别是:请求行.消息报头.请求正文 (1)请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Metho ...

  7. OSPF协议详解

    CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...

  8. HTTP协议详解(真的很经典)

    HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...

  9. HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

随机推荐

  1. nyoj_2:括号配对问题

    模拟栈的操作,很基础的一道题 题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=2 #include<stdio.h> #inc ...

  2. 快速了解cpu、核与线程

    作为一个后台开发人员,我想有必要了解这些基础知识.如果本文有不严谨或者疏忽的地方,请指正. cpu与核心 物理核 物理核数量=cpu数(机子上装的cpu的数量)*每个cpu的核心数 虚拟核 所谓的4核 ...

  3. 在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)

    最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,Shar ...

  4. .editorconfig

    摘要 是什么 EditorConfig是一套用于统一代码格式的解决方案,可以帮助开发者在不同的编辑器和IDE之间定义和维护一致的代码风格. EditorConfig包含一个用于定义代码格式的文件和一批 ...

  5. collectionView 和 tableView的嵌套使用

    #import "ViewController.h" #define HEIGHT [UIScreen mainScreen].bounds.size.height #define ...

  6. yum 源问题

    YUM源搭建 1.yum源是yum安装的获取源地,yum  = 红帽包管理 echo /dve/sr0 /media ios9660 defaults 0 0 >> /etc/fstab ...

  7. [译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量

    原文地址:All you need to know to really understand the Node.js Event Loop and its Metrics 原文作者:Daniel Kh ...

  8. [补档][NOI 2008]假面舞会

    [NOI 2008]假面舞会 题目 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一个自己喜欢的面具. 每个面具都有一 ...

  9. 给View添加手势,防止点击View上其他视图触发点击效果

    在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发手势.如下图: 我们在红色view上添加了手势,但是又不想点击黄色view也触发.其实 ...

  10. txt文件怎么设置默认打开是用这个EditPlus软件打开

    1.如果是正常安装的Editplus,只需要右击“txt文件”,在“打开方式”中选择“打开程序”,再点击“浏览”,找到“Editplus”打开,再将“始终使用选择的程序打开这种文件”前面的“口”选中, ...