HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间数据交换的过程。

1.Http1.0和1.1

Http1.0:请求一次,连接自动断开。

Http1.1:一次连接,可以发起多次请求。

2.在windows中使用telnet发起Http请求

telnet localhost 8080   //连上服务器

GET /abc/1.html HTTP/1.1 // 编写HTTP请求

Host: // 输入服务器名

3.HTTP请求的格式

【一个请求行】换行

【若干个请求头】换行

换行

【post消息】

例如:

GET /books/abc.html HTTP/1.1

Accept:image/webp,image/*,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:uuid_tt_dd=1603386812225897869_20161020; __message_sys_msg_id=0; __message_gu_msg_id=0; __message_cnel_msg_id=0; __message_district_code=000000; __message_in_school=0; dc_tos=ofbqa0; dc_session_id=1476929736226
Host:dc.csdn.net
Referer:http://www.csdn.net/article/2014-09-17/2821721
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36

// 说明

//第一行是请求行 格式为:【请求方式  资源URL  HTTP版本号】

// 请求方式共有7种,常用的是GET和POST两种,GET常用来从服务器得到信息,POST主要用来向服务器提交信息

// GET请求提交给服务器的信息被写在URL的“?“后面,使用“&”分隔多个键值对,不具有保密性,通常该信息容量最大不超过1K

// POST请求发给服务器端的信息无容量限制,该信息被放在请求体里发给服务器。POST请求通常通过form表单提交。

//第二行开始是多条请求头信息

2.常用请求头

Accept:客户支持的数据类型,全支持是"*/*",部分支持比如"text/html image"表示支持HTML和图片

Accept-Charset:客户机采用的编码方式

Accept-Language:客户机语言环境,用来提示服务器进行正确的国际化,如"zh-cn"表示中文中国地区

Accept-Encoding:客户端支持的压缩格式,服务器端可根据该信息,将响应内容压缩至该格式进行传输

Host:请求哪个主机的资源

If-Modified-Since:如果服务器端相应资源的最后修改日期比这个日期新,就发送新的相应,否则就读取客户机浏览器缓存

Referer:表明当前的请求是从哪个页面发送出来的,用来支持服务器端做防盗链工作。

User-Agent:客户机的软件环境,如浏览器品牌及版本,操作系统品牌及版本等

Cookie:Cookie信息

Connection:用来告诉服务器端,当响应完成以后连接是关闭还是保持。常用的值两个:close/Keep-Alive

Date:客户机的时间

5.响应的格式

【一行状态行】换行

【若干个响应头】换行

换行

【实体内容】

举例:

HTTP/1.1 200 OK

Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:GET,POST
Access-Control-Allow-Origin:http://so.csdn.net
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/plain;charset=UTF-8
Date:Thu, 20 Oct 2016 02:15:38 GMT
Expires:Thu, 01-Jan-1970 00:00:00 GMT
Keep-Alive:timeout=20
Server:openresty
Set-Cookie:dc_session_id=1476929736226;Path=/;Domain=csdn.net;Expires=Thu, 20-Oct-2016 02:45:38 GMT
Transfer-Encoding:chunked
Vary:Accept-Encoding

//说明

// 第一行是状态行  格式为【HTTP版本号 状态码 原因叙述】

// 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数,响应状态码分为5类

// 100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。不常见。

// 200~299:表示成功接收请求并已完成整个处理过程,常用200

// 300~399:为完成请求,客户机需要继续细化请求。例如:请求的资源已经移动到一个新地址。常用302、304和307

// 302:请求被服务器重定向到新的URL,与响应头中的Location头配合使用

// 307和304:服务器要求客户机去拿缓存

// 400~499:客户端的请求有错误。常用404、403。404表示请求的资源不存在。403表示用户没有访问该资源的权限。

// 500~599:服务器端有错误产生,常用500。

6.常用响应头

Location:客户发来的请求,服务器端告诉客户端,你要的东西我没有,你可以去找某某,这个过程术语叫做请求重定向,而Location就是这个某某。

Server:服务器的类型

Content-Encoding:数据压缩格式

Content-Length:数据长度

Content-type:数据类型

Last-Modified:资源缓存时间

Refresh:连命令浏览器多长时间刷新一次

Content-Disposition:是否以下载的方式打开资源

Transfer-Encoding:数据传送格式

ETag:缓存内容的头

Expires:缓存过期时间

Cache-Control:no-cache是否要缓存

Pragma:no-cache是否需要缓存

Http 1.1协议的更多相关文章

  1. HTTP协议系列(1)

    一.为什么学习Http协议       首先明白我们为什么学习HTTP协议,也就是说明白HTTP协议的作用.HTTP协议是用于客户端与服务器之间的通讯.明白了HTTP协议的作用也就知道了为什么要学习H ...

  2. 重温Http协议--请求报文和响应报文

    http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...

  3. 协议森林17 我和你的悄悄话 (SSL/TLS协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. TLS名为传输层安全协议(Transport Layer Protocol),这个协议是一套加密的 ...

  4. 协议森林16 小美的桌号(DHCP协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址.DNS域名服务器地 ...

  5. 简约之美Jodd-http--深入源码理解http协议

    Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架.简单,却很强大! jodd-http是一个轻巧的HTTP客户端.现在我们以一个简单的示例从源码层看看是如何实现的? Http ...

  6. 【JavaScript】javascript中伪协议(javascript:)使用探讨

    javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行. 比如下面这个死链接: <a href="javasc ...

  7. SNMP简单网络管理协议

    声明:以下内容是学习谌玺老师视频整理出来(http://edu.51cto.com/course/course_id-861.html) SNMP(Simple Network Management ...

  8. 海鑫智圣:物联网漫谈之MQTT协议

    什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...

  9. linux-图形化远程管理协议

    远程管理控制方式: RDP(remote desktop protocol)协议: telnet: SSH(Secure Shell): RFB(Remote FrameBuffer)协议(图形化远程 ...

  10. RTP与RTCP协议介绍(转载)

    RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...

随机推荐

  1. 作业六—图书管理系统(SPEC)系统性能评估测试

    一.图书管理系统的典型用户和场景: 该系统是为各类学校图书馆和社会各大图书馆和书店管理者使用的图书管理系统.但是我们还是已北京工业大学耿丹学院图书馆为典型用户进行主要设计的! 二.SPEC测试的目标: ...

  2. jquery bind、delegate、live、on的区别及联系

    jquery bind.delegate.live.on的区别及联系 概述 jquery提供了好几个API都可以实现事件绑定, 如 delegate, live , bind 等, 可是有没有疑惑这几 ...

  3. JsRender for index 循环索引使用说明

    循环是模版引擎必不可少的一部分,而说起循环,会引出一个至关重要的因素:索引. 所谓索引,即循环次数,通过索引,可以获取当前循环是第几次. 如果读者阅读过官方文档,会见到如下获取索引的方式: data: ...

  4. 亚马逊云服务之CloudFormation

    亚马逊的Web Service其实包含了一套云服务.云服务主要分为三种: IaaS: Infrastructure as a service,基础设施即服务. PaaS: Platform as a ...

  5. clientHeight,offsetHeight与scrollHeight的相关知识

    在html里,width与height是最常用也是最基础的两个属性,因此,在js里,我们也经常需要操作这两个属性.js关于这两个属性提供了client*,offset*与scroll*,很多同学搞不清 ...

  6. Git可视化极简易教程 —— Git GUI使用方法

    前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的成本,但是搜索了一下并 ...

  7. Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..

    Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid Ap ...

  8. iOS开发-UITableView滑动视差

    视差滚动是指让多层背景以不同的速度移动,形成立体的运动效果,在Web上应用的比较多,App中倒是见的相对比较少,主要在UITableView中的应用的比较多,尤其是当整个UITableViewCell ...

  9. javaweb学习总结(十九)——JSP标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  10. 上海SAP代理商 电子行业ERP系统 SAP金牌代理商达策

    上海SAP代理商 电子行业ERP系统 SAP金牌代理商达策上海达策为电子行业企业提供了多样的ERP信息化管理系统.基于多营运中心的管理架构体系,构造了以供应链.生产管理.财务一体化为核心,协同HR.B ...