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 简 ...
随机推荐
- 揭晓UX(用户体验)最大的秘密
我是佩恩和特勒的粉丝已经多年了.我第一次在现实中看到他们是在上个月,被他们的表演完全迷住了. 我真的很喜欢佩恩和特勒,他们经常“回拉窗帘”,并揭示他们是怎么完成他们的魔法.其他魔术师营造神秘主义和虚假 ...
- erlang入门之编译和运行
测试erlang脚本如下 -module(empty). -author("mmc"). %% API -export([test/1,test/0]). test()-> ...
- GOF23设计模式之中介者模式(mediator)
一.中介者模式概述 如果一个系统中对象之间的联系呈现网状结构,对象之间存在大量多对多的关系,导致关系及其复杂,这时可以引入一个中介者对象,使得各个对象只跟中介者对象打交道,从而将复杂的网络结构化为星型 ...
- struts2学习(5)拦截器简介以及例子执行过程
一.拦截器简介: 二.Struts2预定义拦截器&拦截器栈 在执行action之前和之后,拦截器进行了操作: 比如struts-default.xml中就有很多预定义的拦截器: 拦截器栈: ...
- java web 程序---在线时长
思路:toLocalString()这个方法 <body> <% long t=session.getLastAccessedTime(); long t2=session.getC ...
- Java堆外内存之一:堆外内存场景介绍(对象池VS堆外内存)
最近经常有人问我在Java中使用堆外(off heap)内存的好处与用途何在.我想其他面临几样选择的人应该也会对这个答案感兴趣吧. 堆外内存其实并无特别之处.线程栈,应用程序代码,NIO缓存用的都是堆 ...
- Linux编译前提前丰富库资源
Linux在软件编译的时候,时常提示一些依赖,无谓浪费时间.我们可以事先将常用的依赖包,一起安装一下,防止后续编译过程被打断. 之前,有个很重要的前提,就是epel源的安装. # ls /etc/yu ...
- 使用DOSGi在OSGi环境下发布Web Services
前言 Apache CXF是一个开源的服务框架项目,而Distributed OSGi子项目提供了基于OSGi远程服务规范的分布式组件实现.它使用Web Services,HTTP上的SOAP手段实现 ...
- ALSA声卡07_分析调用过程_学习笔记
1.编译新的strace工具分析aplay和amixer应用程序对声卡的调用过程 (1)因为旧的strace工具不能识别不能识别alsa声卡驱动程序里面的ioctrl. (2)编译过程参考http:/ ...
- Centos7 可执行程序自定义为系统服务
systemctl的使用相比以往系统服务的/etc/init.d的启动脚本的方式变动也比较大,但变的更简单更易用了,同firewalld一样,运行原理一目了然,对于初学者来说,只要做过一两次练习,就能 ...