HTTP:hype-text transfer protocol,超文本传输协议,超文本(html)在网络间(电脑与电脑之间)传输过程中所遵循的一些规则。

两台电脑之间要实现数据传输的条件

1.两台电脑必须要互联(通过网线:TCP/IP)

2.数据的传输要遵循HTTP协议。(B/S结构的系统)

HTTP协议特点

支持客户/服务器模式:不限于b/s结构,凡是b/s结构都必须遵循HTTO协议

简单快速:只需请求方法和路径。如(http://www.fang.com/ask)其中http是请求方法

灵活【任意数据】:可以传输任意数据

无连接【每次连接只处理一个请求】:每次请求值会处理一次,返回一个结果,需要再获取其他数据就必须重新请求

无状态:服务器在处理两次请求的时候区分不出来是否两个请求来自同一个浏览器(所以存在session和cookie技术)

URL和URI的区别:

URL:统一资源定位,指的是通过http协议,以及服务器的所在域名加上对应文件的路径组成的一个网络绝对路径

例:http://www.fang.com/ask/daily.html

URI:uniformed resource identifier,统一资源标识,指的是一个文件在网站服务器相对网站根目录的路径

如:/ask/daily.html

当我们发送一个请求时都在了哪些事情呢?

1.找hosts文件,匹配ip地址,如果本地hosts文件匹配成功会返回对应的ip,如果失败了会去外网的DNS服务器去匹配IP地址

2.浏览器封装http请求协议

2.1协议封装的内容:

host:请求域名

请求文件

3.通过http协议传输请求,发给对应ip的电脑,web请求默认端口80,apache通过监听,获取请求,进行处理

4.apache封装http响应协议,并将数据交给客户端浏览器

5.浏览器拿到数据后解析http协议,解析内容,显示内容。

如图:

HTTP协议

http协议分为两个部分:http请求,http响应

http请求:

http请求分为四个部分:

请求行:包含三部分内容

请求方式:GET/POST

    URI:要请求的文件路径

    协议版本:HTTP/1.1

请求头:请求头就是一项一项的规范(协议的真正内容),一个内容占一行,常见如下:

    host:所请求的主机地址

    accept-encoding:可以接受的数据的编码,是什么流文件(文件内容)

    referer:引用,指从哪个界面过来的(跳转过来)

    connection:连接,在本次请求的过程中,直到服务器把数据全部交还给浏览器,两者之间一直保持连接状态

    accept-language:浏览器可以接受的语言

    cookie:浏览器携带提供给服务器的cookie数据(报存在浏览器cookie中的数据)

    user-agent:浏览器信息

    accept:浏览器可以接收服务器返回的数据类型

    content-length(post):浏览器交给服务器的数据长度

    if-modified-since(get):表示浏览器当前访问过某个界面,而进行再次访问,该时间是上次请求缓存文件的时间

    content-type(post):提交的文件的类型

    空行:用于区分请求头和请求体。

请求体:只有post提交数据的时候才会有信息

http协议简析(一)的更多相关文章

  1. DNS使用的是TCP协议还是UDP协议简析

    DNS使用的是TCP协议还是UDP协议简析   DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况 ...

  2. Https协议简析及中间人攻击原理

    1.基础知识 1.1 对称加密算法 对称加密算法的特点是加密密钥和解密密钥是同一把密钥K,且加解密速度快,典型的对称加密算法有DES.AES等                              ...

  3. HTTP协议--简析

    HTTP--超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,是所有的www文件都必须遵守的标准. 要想成为优秀的web开发人员,必须熟悉H ...

  4. TCP 协议简析

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接.它是个超级麻烦的协议, ...

  5. mysql协议简析

    前言 如果要在命令行中连接mysql,最常用的便是 mysql -u root -p 这样指定用户名和密码 当然还可以使用远程连接 mysql -h 127.0.0.1 -u root -p 还有一种 ...

  6. STUN协议简析

    http://blog.csdn.net/mazidao2008/article/details/4934257 ——————————————————————————————————————————— ...

  7. HTTP协议简析(二)

    HTTP响应也包含四部分内容: 响应行: 协议版本:HTTP/1.1 状态码:200 状态描述:对状态码的说明 响应头:用来规范数据,常用的有: server:服务器信息 date:响应的时间 las ...

  8. QUIC/HTTP3 协议简析

    从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来. HTTP.HTTP2 和 HTTP3 先和大家来回顾一 ...

  9. DHCP协议简析

    推荐这篇文章,原理及抓包都分析的很好: **推荐这篇文章,原理及抓包都分析的很好:** https://blog.csdn.net/andy_93/article/details/78238931 简 ...

随机推荐

  1. Zend Studio 下载

    http://www.52pojie.cn/thread-507229-1-1.html THINKPHP :  http://www.cnblogs.com/TigerYangWTH/p/57250 ...

  2. google adwords report相关类型

    (来自enum的ReportDefinitionReportType) KEYWORDS_PERFORMANCE_REPORT,    AD_PERFORMANCE_REPORT,    URL_PE ...

  3. SpringBoot中RedisTemplate订阅发布对象

    解说 RedisMessageListenerContainer Redis订阅发布的监听容器,你的消息发布.订阅配置都必须在这里面实现 addMessageListener(MessageListe ...

  4. linux 文件权限详细说明

    在本章前部,当你试图转换到根用户的登录目录时,你收到了以下消息: cd /root bash: /root: Permission denied 这是 Linux 安全功能的一个演示.Linux 和 ...

  5. hadoop中的一次集群任务执行超时问题查找过程

    问题背景 本次进行一个项目的重构,在某些活动数据量比较大的情况下,会偶尔出现1200s超时的情况,如下: AttemptID:attempt_1410771599055_11709_m_000033_ ...

  6. 简单IOCP例子

    使用IOCP模型编程的优点 ① 帮助维持重复使用的内存池.(与重叠I/O技术有关) ② 去除删除线程创建/终结负担. ③ 利于管理,分配线程,控制并发,最小化的线程上下文切换. ④ 优化线程调度,提高 ...

  7. JAVA中构造函数的参数传递给类中的实例变量

    class VolcanoRobot1 { String status; int speed; float temperature; VolcanoRobot1(int speed,float tem ...

  8. python装饰器注意事项

    内容: 1.装饰器基本结构复习 2.装饰器注意事项 python装饰器详细内容:http://www.cnblogs.com/wyb666/p/8748102.html 1.装饰器基本结构复习 装饰器 ...

  9. SVN revert命令的使用

    evert命令顾名思义就是对修改过的东西进行回滚操作.一般有2种情况发生时需要用到回滚的操作: 1,修改过的东西没有递交(commit) 这种情况下revert会取消之前的修改 用法:#svn rev ...

  10. mysql 理解索引,添加索引,使用索引(哪些情况会导致索引失效)

    索引用于快速找出在某个列中有一特定值的行.不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行,还需要考虑每次读入数据页的IO开销.而如果采取索引,则可以根据索引指向的页以及记录在 ...