`
qindongliang1922
  • 浏览: 2141030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116013
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124368
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58241
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70189
社区版块
存档分类
最新评论

了解HTTP协议

阅读更多
  http协议全称超文本传输协议(hypertext transfer protocol),就是用来定义浏览器与客户机数据交换的一个过程,java web中servlet 的各种方法也是建立在http请求与响应的基础,而http协议也是网络基础协议tcp/ip协议的应用级表现,因此http协议是web应用的基石。
    目前流行的版本为http1.1,相比于1.0支持客户端与服务器连接后访问多个web资源。http请求对应浏览器向服务器发出的请求信息,其具体分为请求行,请求头,空白行.如下图:

     请求行(状态行):首先显示其请求方式(get,post,trace,delete,head,put,option),默认为get,表单提交为post,二者区别在于get提交的数据跟在其请求的url后,以&隔开,其数据大小不能超过1k,post提交数据在协议空白行里,其大小无限制。请求行之后显示的为请求的web资源名,协议版本号。
     请求头:显示各个字段及其内容。Accept:告诉服务器客户机支持的压缩类型,例如:text/html,image/*.其为支持文本与图像格式。*/*为支持所有格式。Accept-Encoding:告诉服务器其支持的数据压缩格式。Accept-charset:告诉服务器客户机支持的编码格式。Accept-language:告诉服务器客户机的语言环境,英文或中文等。if_modified-since:提供其客户机资源的缓存时间,比如访问某网站首页,浏览器将其资源加入缓存,当下次再次访问其网站时,服务器会将其提交的时间与网站最新的更新时间对比,若更新时间早于其提交时间,则浏览器直接从缓存中提取资源,从而减小服务器的压力。Refere:告诉服务器访问该页面时客户机是从哪个页面跳转过来的,此法主要用于防盗链,保护其网站的资源,防止其他网站以超链接形式直接跳转至本网站重要资源。user-agent:告诉浏览器其运行环境,windows内核,以及浏览器版本等。Connection:告诉服务器请求后是保持链接或者断掉链接,keep alive/close.
    空白行:当请求方式为post时,显示提交的数据
    http响应对应服务器对客户机请求后做出的响应包。如下图:

    状态行:主要显示服务器的处理结果。首先显示http版本信息,其次显示状态码,状态码由3为十进制数组成,常见状态码及其意义如下。200,202:客户机请求成功,302:客户机再请求别的地址,304,307:客户机去拿缓存,403:客户机请求错误,404:客户机请求的web资源没有或请求地址没有,500:服务器有问题。
响应头:各个字段对应服务器对客户机的响应信息以及对数据的响应控制。Location:配合302状态码使用,显示其为客户机。重定向的地址。Server:告诉客户机本服务器的类型。Content-Encoding:告诉客户机数据的压缩格式。Content-Length:告诉客户机压缩后的数据长度。Content-Type:返回的数据类型。Refresh:告诉客户机隔多长时间刷新一次(请求服务器)。Content-Disposition:attachment;filename=”….”,告诉客户机以下载方式打开该文件。Transfer-Encoding:告诉客户机数据的传送格式。etag:与缓存相关,客户机第一次请求服务器的某个web资源时,服务器会以etag的形式返回给客户机该web资源的唯一标识符(相当于id),当客户机第二次访问该web资源时会带上该etag值,与现今etag比对后若一样则客户机直接拿缓存。Expiress:告诉客户机把回送的数据缓存的时间,若小于此时间则客户机访问时一直拿缓存,—1则不拿缓存。
空白行:显示服务器返回给客户机的实际数据内容。
    由此可看出,整个web应用开发都是基于http协议的。
分享到:
评论
2 楼 qindongliang1922 2014-02-23  
中南java人 写道
谢谢转载本人文章

总结的不错,
1 楼 中南java人 2014-02-23  
谢谢转载本人文章

相关推荐

    深入了解http协议

    深入了解http协议.具体介绍了相关的协议

    B06.深入浅出了解HTTP协议.md

    深入浅出了解HTTP协议

    Python爬虫基础知识.pdf 了解HTTP协议和HTML语言,理解网页的基本结构和请求过程

    Python爬虫基础知识.pdf 了解HTTP协议和HTML语言,理解网页的基本结构和请求过程

    深入了解HTTP协议

    HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一...

    http协议相关资料

    学习了解http协议相细字段,分析http协议。

    http协议教程,对协议进行简单基础的了解

    对于了解http协议很有帮助,对于很多开发者来说对于http协议很模糊,其实也不是很高深的东西了

    《透视http协议》链接地址.txt

    非常透彻的了解http协议,还有实验进行验证,我觉得非常不错,推荐给大家

    http协议.pdf

    让你了解http协议的秘密

    http协议工作原理讲义

    本文描述http协议基本工作原理,是web网站开发人员了解http协议指导丛书

    HTTP协议详细解读.doc

    详细解读了HTTP协议,对于网络中常用的HTTP协议进行解读,让读者可以轻松的了解http协议,对于http协议了解以后,还解读一些安全上的知识

    HTTP协议状态码

    对于Web编程人员来说,熟悉了解HTTP协议的状态码是很有必要的,很多时侯可能根据HTTP协议的状态码很快就能定位到错误信息!

    c语言通过http协议下载

    程序功能 1、通过http语言,在后台下载资源,实现软件更新 2、程序使用c语言实现,效率高 3、想知道软件如何更新,想近一步了解http协议,或者很闲,可以参考一下。

    大家说的Python爬虫是指什么?学会Python爬虫需要了解的五大方面.docx

    # 大家说的Python爬虫是指什么?...4. **网络爬虫原理**:了解HTTP协议和网页结构,理解爬虫的基本原理。HTTP协议是Web应用程序中的一种通信协议,而了解网页结构可以帮助我们更好地理解网页的内容和布局。

    Http从入门到精通,进阶教程

    HTTP协议:了解HTTP协议的基本原理、特点、工作流程等。 HTML/CSS/JavaScript:掌握HTML/CSS/JavaScript的基础知识,能够进行基本的网页开发和调试。 前端框架:学习前端框架,例如React、Vue等,掌握其基本原理和...

    HTTP及EMAIL协议工作机制

    1、熟悉Web系统的工作原理,掌握HTTP协议的工作机制; 2、利用Telnet工具或其他工具提供TCP端接,在TCP连接的基础上,手动实施基于HTTP协议的Web程序访问过程; 3、理解邮件服务的工作原理; 4、了解POP3协议及接收...

    Fiddler 4.6 自带fiddlerscript插件

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,...你越使用Fiddler,就越能帮助你了解HTTP协议。 Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

    HTTP协议(RFC2616)中文版.pdf

    HTTP1.1标准 RFC 2616中文版,不了解HTTP协议的这个翻译文档可以很好的查漏补缺,忘记可以随时查阅。

    fiddler-4-6-2-30081

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你...你越使用Fiddler,就越能帮助你了解HTTP协议。  Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

    Fiddler_官网_v5.0.20192.25091.rar

    允许你监视、设置断点、甚至修改输入输出数据。Fiddler包含了一个强大的基于事件脚本的子系统,并且能...你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

Global site tag (gtag.js) - Google Analytics