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. Time complexity--codility

    lesson 3: Time complexity exercise: Problem: You are given an integer n. Count the total of 1+2+...+ ...

  2. SecureCRT导入已有会话

    如果别人有完整的环境信息,我们想拿过来,怎么导入?或者别人想要我的会话配置信息,怎么导出?对SecureCRT这个工具来说很easy,根本不需要去找什么导入.导出按钮,直接文件操作. 假如我的Secu ...

  3. 轻量级封装DbUtils&Mybatis之四MyBatis主键

    MyBatis主键 不支持对象列表存储时对自增id字段的赋值(至少包括3.2.6和3.3.0版本),如果id不是采用底层DB自增主键赋值,不必考虑此问题 温馨提示:分布式DB环境下,DB主键一般会采用 ...

  4. WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一)

    WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一) 编写人:CC阿爸 2015-1-28 在伍华聪的博客中,看到布局控件"Weife ...

  5. qt下用启动图

    void showSplash(void) { QSplashScreen*splash=newQSplashScreen; splash->setPixmap(QPixmap(":/ ...

  6. jQuery给控件赋值....

    1.jQuery给span取值:$("#id").html(); 2.jQuery给input取值:$("#id").val(); 3.jQuery给texta ...

  7. c# 判断文件是否已使用

    string path = Server.MapPath(" PDFs"); bool tfOpenTemp= IsFileInUse(path + " /Doc1.pd ...

  8. AOP 动态织入的.NET实现

    AOP(面向切面编程:Aspect Oriented Programming)为诸如日志记录.性能统计.安全控制.事务处理.异常处理等与具体业务逻辑无关,却需要在全局范围进行执行的功能提供了一种良好重 ...

  9. [Oracle] 用python插入中文

    先替换字符串中的\x22 为双引号,\x0A为回车 str2 = '{\x22name\x22:\x22hao\x22 \x0A ,\x22os\x22:\x22other\x22 } print s ...

  10. 检查office2016激活时间

     OFFICE 64位 和 WINDOWS 64位cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /ds ...