`
jesson.lv
  • 浏览: 40804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

对http协议的理解

 
阅读更多

http协议是应用层的一种协议,貌似发展到现在已经有24年了,在自己的日常工作和生活中一直离不开internet,也就和http协议密不可分,但是却么有深入了解过,今天google了一下,总结下自己的理解。

jessonlv-吕国栋原创文章,转载请注明出处:http://blog.csdn.net/jessonlv

http协议应该说有以下几个主要的特点:

1、支持客户端/服务器模式

2、简单快速:之所以简单,是因为,http协议每次向服务器端发送请求时,只传送请求方法和路径,请求方法一般有POST、GET、HEAD,每种方法体现了客户端与服务器端的联系方式不同。进而由于http协议很简单,所以其体积比较小,通信速度很快。

3、灵活:http运行传送任意类型的数据,数据由Content-Type来标记。

4、无连接:无连接的意思是,http每次链接只处理一个请求,当请求完毕时,就关闭这个链接。

5、无状态:无状态是指协议对事务处理没有记忆能力,这就意味着如果后续处理需要前面的信息,那个这个链接必须重新请求,这就造成了信息传输量的增加,不过另一方面如果后续处理不需要前面的信息的话,那么这个请求速度就会很快。


http请求由三部分组成:请求行、消息报头、请求正文

请求行的一般格式如下:Method Request-URI HTTP-Version CRLF,其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。


请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

http响应也由三部分组成:状态行,消息报头,响应正文

状态行格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF
其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求


常见状态代码、状态描述、说明:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
eg:HTTP/1.1 200 OK (CRLF)


分享到:
评论

相关推荐

    深入理解HTTP协议

    深入理解HTTP协议

    深入理解http协议

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

    透视HTTP协议,关于HTTP协议的深入学习和理解,旨在帮助读者从基础到高级全面掌握HTTP的相关知识

    关于HTTP协议的深入学习和理解,旨在帮助读者从基础到高级全面掌握HTTP的相关知识。内容涵盖了HTTP协议的基本结构、工作原理、以及与HTTP相关的技术和工具,如TCP/IP、DNS、SSL/TLS、Web Server等。教程强调理论与...

    http协议理解

    浏览器上网浏览网页,其原理也同属于上部分所描述...当客户端程序访问网站时,在原理上就是访问服务器的80端口,浏览器和服务器交换数据的协议为HTTP协议,其原理就是发送请求、接收数据,而且数据都是文本形式传送的。

    http协议详细分析 经典

    http协议详细分析 经典,深入理解http协议

    web测试之2理解网络协议

    这次上传的是第二部分理解网络协议。 总的分六次上传 1.web系统基础 2.理解网络协议 3.http协议详解 4.web 前端分析 5.web 安全性测试 6.web 兼容性以及可用性测试

    理解HTTP协议共2页.pdf.zip

    理解HTTP协议共2页.pdf.zip

    HTTP协议的分析和理解

    详细分析HTTP协议消息报头,以及请求和响应,使用Telnet了解HTTP的整个通讯过程。

    http协议详解

    详细讲解http的内容,以及每个参数的含义;里面含有大量的java示例代码,让你更加清晰、快捷使用http协议。提升你对http协议的理解。

    HTTP 协议详解及测试案例

    一份关于HTTP协议的详细解释,对HTTP协议的整个流程进行了详细的说明, 最后通过简单的测试案例深入理解HTTP协议的全过程。

    深入理解HTTP协议[汇编].pdf

    深入理解HTTP协议[汇编].pdf

    HTTP协议(RFC2616)中文版.pdf

    HTTP协议(RFC2616)中文版,帮助您理解使用http

    Http协议详解(深入理解).md

    面试官:考考你网络协议的知识,TCP协议和UDP协议的区别,HTTP协议,HTTPS协议的底层原理是什么等一堆技术问题。 小达:。。。。我还不知道哎。 面试官:那你回去等通知吧 于是小达回家后,针对其中的HTTP进行...

    HTTP及EMAIL协议工作机制

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

    TCP/IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议

    《TCP/IP详解(卷3):TCP事务协议、HTTP、NNTP和UNIX域协议》适用于希望理解TCP/IP如何工作的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。《TCP/IP详解(卷3):TCP事务协议、HTTP、NNTP...

    网络协议实验指导书

    TCP/IP的层次结构对网络互连中的主要协议进行分析,由下而上的设计了9个协议分析实验,涉及ARP协议分析、IP协议分析、ICMP协议分析、UDP协议分析、TCP协议分析、DHCP协议分析、DNS协议分析、HTTP协议分析、SMTP协议...

    python爬虫入门教程–快速理解HTTP协议(一)

    爬虫的基本原理是模拟浏览器进行 HTTP 请求,理解 HTTP 协议是写爬虫的必备基础,招聘网站的爬虫岗位也赫然写着熟练掌握HTTP协议规范,写爬虫还不得不先从HTTP协议开始讲起 HTTP协议是什么? 你浏览的每一个网页都是...

    web测试之3.1http 协议详解

    文件大小的限制,这次先上传部分http 协议详解。总的分六次上传 1.web系统基础 2.理解网络协议 3.http协议详解 4.web 前端分析 5.web 安全性测试 6.web 兼容性以及可用性测试

    Python开发工程师学会用 Django 框架实现功能:理解 HTTP 协议02.zip

    Python开发工程师学会用 Django 框架实现功能:理解 HTTP 协议02.zip

Global site tag (gtag.js) - Google Analytics