http协议简析(一)
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协议简析(一)的更多相关文章
- DNS使用的是TCP协议还是UDP协议简析
DNS使用的是TCP协议还是UDP协议简析 DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况 ...
- Https协议简析及中间人攻击原理
1.基础知识 1.1 对称加密算法 对称加密算法的特点是加密密钥和解密密钥是同一把密钥K,且加解密速度快,典型的对称加密算法有DES.AES等 ...
- HTTP协议--简析
HTTP--超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,是所有的www文件都必须遵守的标准. 要想成为优秀的web开发人员,必须熟悉H ...
- TCP 协议简析
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接.它是个超级麻烦的协议, ...
- mysql协议简析
前言 如果要在命令行中连接mysql,最常用的便是 mysql -u root -p 这样指定用户名和密码 当然还可以使用远程连接 mysql -h 127.0.0.1 -u root -p 还有一种 ...
- STUN协议简析
http://blog.csdn.net/mazidao2008/article/details/4934257 ——————————————————————————————————————————— ...
- HTTP协议简析(二)
HTTP响应也包含四部分内容: 响应行: 协议版本:HTTP/1.1 状态码:200 状态描述:对状态码的说明 响应头:用来规范数据,常用的有: server:服务器信息 date:响应的时间 las ...
- QUIC/HTTP3 协议简析
从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来. HTTP.HTTP2 和 HTTP3 先和大家来回顾一 ...
- DHCP协议简析
推荐这篇文章,原理及抓包都分析的很好: **推荐这篇文章,原理及抓包都分析的很好:** https://blog.csdn.net/andy_93/article/details/78238931 简 ...
随机推荐
- tomcat深入学习
总体结构:https://www.jianshu.com/p/d74eef07487f servlet相关:https://www.ibm.com/developerworks/cn/java/j-l ...
- spring整合xfire出现Document root element "beans", must match DOCTYPE root "null"错误解决方案
fire自带的包下有个spring1.2.6的jar包,而工程的jar包是2.0的. 解决方案: 1.将原配置文件的头schema方式换为DOCTYPE方式,原配置文件如下(非maven) <? ...
- erlang的调试配置
distel可以断点调试erlang,但是步骤非常繁琐 以下面的测试脚本为例说明 geometry.erl -module(geometry). -export([area/1]). area({re ...
- js 日期正则 转载
天秤水的Blog 博客园 博问 闪存 首页 新随笔 联系 管理 订阅 随笔- 70 文章- 0 评论- 74 最强日期正则表达式 一.简单的日期判断(YYYY/MM/DD): ^\d{ ...
- 手势GestureDetector.OnGestureListener事件的调起
@Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionE ...
- PyQt 5菜单和工具栏
QMainWindow类提供主要应用程序的窗口,有添加状态栏.工具栏.菜单栏等功能 状态栏 self.statusBar().showMessage('Ready') # 创建一个状态栏 # 状态栏显 ...
- spring声明式事务管理详情解析
前沿:通过对spring事务管理有了比较深入学习,本文将不做实例,而是指定具体的类和配置文件进行讲解. 本文内容: 1.了解什么是声明式事务? 2.声明式事务管理分别有哪几种? 3.这几种事务管理之间 ...
- php xss漏洞修复用手段和用到的一些函数
php xss漏洞修复用到的一些函数 $text = '<p>"Test paragraph".</p><!-- Comment --> < ...
- 比XGBOOST更快--LightGBM介绍
xgboost的出现,让数据民工们告别了传统的机器学习算法们:RF.GBM.SVM.LASSO.........现在,微软推出了一个新的boosting框架,想要挑战xgboost的江湖地位.笔者尝试 ...
- 【Oracle】Oracle 10g利用闪回挽救误删的数据
我们在开发和运维过程中,经常遇到数据被误删除的情况.无论是在应用开发中的Bug,还是修改数据的时候,如果提交了错误数据修改结果,会带来很多问题.一般来说,一旦提交commit事务,我们是不能获取到之前 ...