1、HTTP请求
协议名://主机名:端口号/资源URI
/*******************************
GET /index.html HTTP/1.1
Host: localhost:8088
connection: Keep-Alive
******************************/
2、request header
Host, 请求头,标名请求主机器名,可为IP也可为域名,http1.1后强制使用,用此请求信息,可在服务端做WEB虚拟机,实现一机多WEB服务
Content-Length,请求、响应体的数据字节大小
Accept-Encoding,请求头,可接受的文本压缩算法,如: gzip, deflate
Accept-Language,请求头,支持语言,客户端浏览器的设置,如:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
User-Agent,请求头,浏览器信息,如:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Gecko/20100101 Firefox/12.0,细心会注册到IE也会用Mozilla,这是一个历史问题,早期WEB服务器貌似有问题,只支持Mozilla,微软IE做为后起之秀只能伪装成Mozilla
Cookie,请求头,服务器或客户端在上次设置的COOKIE,包括作用域名(.360buy.com),过期时间,键与值。大部分WEB服务器都会在第一次访问时在响应头上加Set-Cookie,如:BAIDUID=49415814CDBBB4CE65EC50EE4BB65E9A:FG=1; expires=Wed, 07-Nov-42 07:03:34 GMT; path=/; domain=.baidu.com
Referer,从一个连接打开一个新页面,新页面的请求一般会加此信息,标名是从哪里跳过来的,所有的页面的打开历史链就可被挖掘出来,有利于分析用户行为与CPS分成
3、reponse header
Content-Type, 响应的数据类型:text/html;charset=gbk
Content-Length,响应的数据体大小
Content-Encoding, 如果为文本、HTML信息,则使用的编码方式
Date, 当前服务器日期
Server, 服务器名
Set-Cookie,第一次访问或服务设置COOKIE时,响应头里会有此信息,如,BAIDUID=49415814CDBBB4CE65EC50EE4BB65E9A:FG=1; expires=Wed, 07-Nov-42 07:03:34 GMT; path=/; domain=.baidu.com
4、 Cache-Control , Expires
控制缓存的两个响应头,如果都出现在响应头里,按Cache-Controler计算
Cache-Control,为响应头信息,取值为:
Public,当前系统任何登录的用户都可使用
Private,当前系统登录的此用户进行缓存
no-cache,不做缓存
max-age,缓存指定秒数,如Cache-control: max-age=5,表示当访问此网页后的5秒内再次访问不会去服务器
Expires,为响应头,Http1.1以上版本,与Max-Age一样,用来控制缓存的失效日期
参考资料:http://bubbyroom.com/tag/cache-control/
5、 Last-Modified, If-Modified-Since
Last-Modified, 为响应头,标名本资料上一次的修改时间
If-Modified-Since,为请求头,把上一次请求的Last-Modified日期信息为值进行请求,如果服务器判断Last-Modified时间与服务器一致则直接返回304,浏览器使用本地缓存进行显示。一般用来节省带宽,加速请求与显示。
6、ETag + If-Match
同样是缓存策略,做为以上的补充
ETag,为响应头,在 http1.1中规定为一个字串,具体格式未定义,用来校验客户端缓存
If-Match,为请求头信息,把上一次请求响应的Etag带上进行请求,服务端的处理方法比较灵活,做为Cache-Control,Expires,Last-Modified的补充,可不以时间为参考的缓存策略。
Apache默认对html的Etag取值为INode+Mtime+Size
如:Etag"2e681a-6-5d044840"1
用途:
a,仅仅改变的修改时间,但内容未做修改
b,修改非常频繁,一秒内修改千次,但Cache-Control与Last-Modified,只能控制在秒级,这是对控制力度的进一步提升
c,某些服务器不能精确的得到文件的最后修改时间,个例,我们使用的服务器都已支持,所以所用不多
7、Connection Keep-Alive
HTTP协议采用TCP协议,每次页面资源请求都被规定为一次连接,而每次连接的TCP三次握手关闭时的四次通信与端口滞留等待防止数据包未传送,
而每个TCP都是一个打开文件IO句柄数,Unix/Linux又对这个做了严格的限制。
一个网页,大量资源文件(html\css\javascript\image)需要加载量时需要大数据量的TCP连接,为了减少socket连接数提供了KeepAlive,使一个tcp连接可重复使用。
事实也证明用Keep-Alive速度也更快(但移动客户端接口开发会关掉此属性)。
8、Range: 10-100
取信息的一部分,断点下载时常用
9、返回状态码
200,返回成功
501,服务器内容错误
304,使用本地缓firebug
404,资源没有找到
参考:http://www.ganguoyuan.com/03/curl-http_code-%E7%8A%B6%E6%80%81%E7%A0%81-%E6%84%8F%E4%B9%89%E5%8F%8A%E4%BF%A1%E6%81%AF/
10、http 协议监察工具:
Firebox:httpfox、live http header,firebug
IE:httpwatch、iehttpheader
分享到:
相关推荐
本文将深入讲解`header()`函数在PHP中如何使用HTTP协议以及常见的应用场景。 首先,HTTP协议是互联网上应用最广泛的一种网络协议,用于客户端(如浏览器)与服务器之间的通信。它定义了一套请求和响应的标准格式,...
【标题】: "常用网站前台开发技术指南" 【描述】: 这份“常用网站前台参考手册...这份“常用网站前台参考手册”将详细讲解以上知识点,并提供实例和最佳实践,帮助开发者快速提升前端开发能力,构建高质量的网页应用。
【Web软件开发常用的标准及资源】讲解 在Web软件开发中,HTTP(Hypertext Transfer Protocol)协议扮演着至关重要的角色。HTTP中文名为“超文本传输协议”,它是一种面向应用层的协议,主要服务于分布式、合作式的...
总结来说,导出数据到Excel和Word的常用代码主要涉及HTTP响应的控制,包括设置正确的MIME类型、Content-Disposition头,以及将数据转化为HTML并写入响应。这个过程适用于简单的数据导出需求,但对于复杂的格式和功能...
Nginx 和 Tomcat 是两种常用的 Web 服务器,它们在 SSL 安全连接配置上有各自的方法。SSL(Secure Socket Layer)是一种网络安全协议,用于在互联网上建立加密传输通道,保护数据的安全性。本文将详细讲解如何在 ...
【Web基础教程PPT讲解-全面】 Web技术是互联网的核心组成部分,它涵盖了从网页设计到服务器端编程的各种技能。这个全面的Web基础教程是为那些已有一定计算机基础但对Web技术不太熟悉的学员精心准备的。通过这个教程...
在Java世界中,Apache Commons FileUpload和COS(Comprehensive O'Reilly Servlets)是两个常用的文件上传库。Struts2默认使用Apache Commons FileUpload,需要在项目中添加对应的jar包:commons-fileupload-1.2.jar...
- **页眉(Header)**:`<div data-role="header">` 包含页面标题和可选的导航元素。 - **页脚(Footer)**:`<div data-role="footer">` 提供页脚信息或导航链接。 3. **表单组件**: - **输入框(Input)**:`...
在这个"Html常用标记共51页.pdf.zip"压缩包中,我们可以预想包含的是一个51页的PDF文档,详细讲解了HTML中的常见标记和它们的用途。 1. **HTML基本结构**: HTML文档通常以`<!DOCTYPE html>`开头,定义文档类型,...
这讲深入介绍了Varnish Configuration Language (VCL)中的一些关键函数,如req.http.header、bereq.http.header等,用于处理HTTP请求和响应的头部信息。通过学习这些函数,开发者可以更好地控制缓存策略,比如根据...
`Soap+消息.doc`和`SOAPkehuduan.doc`可能包含了关于SOAP消息构造和部分的详细讲解。 通过深入理解这些知识点,开发者能够熟练地创建、调试和维护SOAP Web服务,实现跨平台、跨语言的系统间通信。
9. **HTTP头信息**:通过`CURLOPT_HTTPHEADER`可以添加自定义的HTTP头信息,这对于模拟用户代理、设置认证信息等非常有用。 10. **非阻塞I/O**:`libcurl`支持异步操作,可以配合多线程或事件驱动模型,提高程序的...
请求相关的注解包括 @RequestParam、@RequestHeader、@CookieValue 等。响应相关的注解包括 @ResponseBody、ResponseEntity 等。 此外,我们还可以使用 HATEOAS(Hypermedia As The Engine Of Application State)...
在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。然而,为了提供更好的用户体验,很多应用都会添加下拉刷新的功能,让用户可以轻松地获取最新的数据。本篇将深入讲解如何在Android中自定义...
在访问WCF服务时,HttpClient是一个常用的选择,因为它支持POST、GET等多种HTTP方法,可以处理认证、重定向等问题。 三、Java访问WCF服务步骤 1. **构建请求**: 首先,需要知道WCF服务的地址(通常是一个URL),...
- **语义化标签**:如`<header>`、`<nav>`、`<footer>`、`<section>`、`<article>`等,提高了代码的可读性和语义性。 - **本地存储**:提供了`localStorage`和`sessionStorage`两种本地存储方式,用于存储数据。 ...
本文将详细讲解这两个关键概念,并结合mongodb数据库和node.js环境,探讨如何在实际应用中进行操作。 首先,request对象代表了客户端发起的HTTP请求,包含了请求头、请求方法(如GET、POST)、URL、查询参数等信息...
本文将详细讲解几个常用的HttpServletRequest方法,并通过示例来阐述它们的用途。 一、获取客户机环境信息 1. `getRequestURL()`:这个方法返回客户端发起请求时的完整URL,包括协议(如http或https)、主机名、...
HttpClient是一个常用的Java库,它允许开发者创建HTTP客户端,执行HTTP请求并处理响应。在这个场景中,我们关注的是如何使用HttpClient来发送POST请求并传输JSON数据。JSON(JavaScript Object Notation)是一种轻量...
本文通过具体的代码示例介绍了如何使用C#实现HTTP请求(包括GET和POST),重点讲解了`HttpWebRequest`类的使用方法、流操作、字符编码处理以及参数拼接等关键步骤。这些技术点对于任何需要与远程服务交互的C#应用...