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提交数据的时候才会有信息

最新文章

  1. Swift_提醒框
  2. Java泛型-类型擦除
  3. POJ 1244 Slots of Fun(计算几何)
  4. C# 截取字符串
  5. 【ASP.net】Equals 和 == 的区别
  6. Android动画之translate(位移动画)
  7. Ubuntu下实用命令收集 --新增 删除 环境变量
  8. java 转html为pdf
  9. BZOJ1642: [Usaco2007 Nov]Milking Time 挤奶时间
  10. AngularJs(七) 模块的创建
  11. HTML5学习指导路线
  12. C++ 仿函数/函数指针/闭包lambda
  13. Php导出百万数据的优化
  14. Python——正则模块
  15. python 正则表达式中反斜杠(\)的麻烦和陷阱
  16. Fit项目图片上传和云存储的调通
  17. [leet code 4] Median of Two Sorted Arrays
  18. Revit Family API 添加对齐
  19. Fix "Drives are running out of free space" Error in SharePoint Health Analyzer
  20. (转)python字符串函数

热门文章

  1. Hibernate Cannot release connection 了,有办法解决!
  2. Django在Eclipse下配置启动端口号
  3. AIDL初识
  4. "==" 与 “equals”
  5. POJ 1222 EXTENDED LIGHTS OUT(反转)
  6. PHP 循环删除无限分类子节点
  7. 029:高可用之MHA
  8. socket编程之select()
  9. md5加密(4)
  10. jQuery样式与动画