你所应该了解的HTTP协议(一)
来源:互联网 发布:macos mysql 安装 编辑:程序博客网 时间:2024/05/21 09:17
当我们的客户端连接上web服务器时,若想要获得web服务器中的某个web资源,需要遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器之间的通讯格式。HTTP又称为超文本传输协议,它是基于TCP/IP协议的一个应用层的协议。HTTP基于请求响应模型,一次相应对因一次请求,并且请求只能由客户端发出,服务器端只能被动的接受请求。
(OSI网络七层协议:应用层(HTTP,SMTP,POP3,TELNET)——>表示层——>会话层——>传输层(TCP,UDP)——>网络层(IP)——>数据链路层——>物理层)
HTTP协议的版本有:HTTP/1.0与HTTP/1.1。版本号之间相差的越少则两者之间的差距越少。1.0与1.1两个版本的区别是HTTP1.0版本中客户端与服务器端连接后只能获取一次web资源,之后便会断开链接。而1.1版本允许客户端与服务器之间连接之后,在一个连接之上可以获得多次web资源。
(OSI网络七层协议:应用层(HTTP,SMTP,POP3,TELNET)——>表示层——>会话层——>传输层(TCP,UDP)——>网络层(IP)——>数据链路层——>物理层)
HTTP协议的版本有:HTTP/1.0与HTTP/1.1。版本号之间相差的越少则两者之间的差距越少。1.0与1.1两个版本的区别是HTTP1.0版本中客户端与服务器端连接后只能获取一次web资源,之后便会断开链接。而1.1版本允许客户端与服务器之间连接之后,在一个连接之上可以获得多次web资源。
HTTP协议我们要了解的是HTTP请求和HTTP响应。
HTTP请求:客户端在连接上服务器之后,向服务器获取某个web资源,称之为向服务器发送一个HTTP请求,一个完整的HTTP请求包括以下几个内容:
GET /books/java.html HTTP/1.1——>请求行ACCEPT :text/html image/*---->若干请求头 ACCEPT-LANGUAGE:en-us Host:localhost ---->一行空行....... ----->实体内容
请求行:请求行用于描述客户端的请求方式,请求的web资源,以及使用的HTTP协议的版本
客户端的请求方式有7种:GET POST PUT DELETE OPTITIONS TRACE HEAD,这7种方式只有GET和POST两种方式是比较常用的,后面几个一般都用不到。
对于GET和POST请求方式,两者的主要区别就是体现在数据的传送上,如果请求的方式是GET方式,则是在请求的URL地址后面以?的形式带上要传输的数据,多个数据之间以&相间隔。例如:GET /books/Java.html?username=aa&password=aa HTTP/1.1.但是GET请求方式URL地址后面的参数的数据容量不超过1k
如果是POST的请求方式,则请求的参数是放在HTTP请求的实体内容中传输过去的,所以传输的数据是没有数据大小限制的。
请求头:HTTP中常用的请求头主要由以下有几个:
ACCEPT:text/html,image/* 当前浏览器所能接受的数据的的格式 ACCEPT-Charset : ISO-8859-1 当前浏览器所使用的数据的编码格式 ACCEPT-Encoding :gzip,compress 当前浏览器接受的数据的压缩格式 ACCEPT-language:zh-cn 当前浏览器的语言环境 Host :localhost:8080 浏览器要访问的虚拟主机的名字 If-Modified-Since:TUE,11,JUL 2017 18:21:53 GMT 与浏览器缓存机制相关的一个头,配合HTTP响应中的Last-Modified使用 Referer:http://www.hhuc.com 表示当前的访问来自哪一个链接,这个请求头与防盗链功能相关 User-Agent:Mozilla/5.0....... 当前浏览器的相关的信息 Cookie 与浏览器的cookie缓存相关的头 Connection:close/keep-Alive 连接的状态,close表示关闭,keep-alive表示链接 Date:TUE,11,JUL 2017 18:21:53 GMT 当前系统的时间HTTP响应下一篇再写吧
2 0
- 你所应该了解的HTTP协议(一)
- 你所应该了解的HTTP协议(二)
- 网络请求前,你所应该知道的HTTP协议!
- 关于 Bootloader 你所应该了解的
- 关于 Bootloader 你所应该了解的
- 关于 Bootloader 你所应该了解的
- 我所理解的HTTP协议<一>
- 你应该要有所了解OSSL开源软件许可协议
- MVP 你应该了解的程序设计模式(一)
- HTTP协议详解,你所不知道的
- HTTP协议详解,你所不知道的
- [转]HTTP协议详解,你所不知道的
- TR069协议向导——一个帮助你了解TR069协议的简明教程(一)
- TR069协议向导——一个帮助你了解TR069协议的简明教程(一)
- TR069协议向导——一个帮助你了解TR069协议的简明教程(一)
- HTTP协议的初步了解
- 【翻译】你应该了解的三种广域网协议:HDLC、PPP、Frame-Relay
- python3爬虫笔记(一):了解HTTP协议
- Chrome 控制台实用实用命令
- A strange lift HDU - 1548
- 初学Hibernate之开发准备
- 进程间通信——信号
- BZOJ 1176: [Balkan2007]Mokia CDQ分治,容斥
- 你所应该了解的HTTP协议(一)
- Could not get unknown property 'mysigns' for SigningConfig container.
- idea tomcat 内存溢出
- zip与unzip
- 11.ExpandableListView
- C# 获取Byte[]类型的内存地址
- 利用Java和photoShop实现照片拼图
- 对论文 You Only Look Once: Unified, Real-Time Object Detection 的理解 (一)
- 大神养成之路上的经验教训,持续不定期更新ing(3)