HTTP协议 - 基础认识
在http协议使用场景上我们最熟悉的可能就是浏览器了,作为本系列第一篇,就讲一个问题 ”浏览器怎么连接上服务器并获取网页内容的“ ;
首先 浏览器怎么连接上服务器的?
如果对OSI七层模型或者TCP/IP四层模型不熟悉可能会对接下来的内容有点懵,不着急,看这里:
假设你已经看过我写的那篇文章了,接下来就听我徐徐道来;
浏览器(以下称 B)要获取服务器(以下称 S)的内容(网页),两者必须通过互联网建立起连接,建立连接的必要要知道双方的 ip地址;
B是怎么获取到 S的ip地址的呢? 就是用户输入的域名,浏览器通过域名解析到ip地址;
至于两者怎么建立连接的,看过我那篇文章也就知道了,这就不说了;
建立连接后,S会把B的请求交给本地绑定80端口(也可能是其他端口)的程序(比如这里就是Apache)来处理这个请求;
既然你B要获取S上的一个页面,你在发送请求的时候就应该告诉S,然后S返回给你数据的时候也应该附带一些信息,比如页面有多大,浏览器才知道接下来怎么处理;
那么想一下,B方想带什么数据就带什么数据,S方返回的数据也是按心情的,就会出现你发送的数据对方不认识,所以双方就需要一个约定一个协议,http协议就诞生了;
现在无论是B方还是S方发送数据都必须遵守一个格式,这样双方就可以愉快的沟通了;
在浏览器中打开博客园,抓一下请求信息来看一下有些啥;
先别兴奋,这个地方看到的都是请求头信息,并不是一个完整的HTTP请求,看看一个完整的请求长什么样;
POST /path/page.php HTTP/1.1
Host: www.xxxxx.com
Content-Type:application/x-www/form-urlencoded
Content-length: username=zhangsan
请求头包含三个部分,请求行。请求头信息。请求主题信息;
看上面代码,第一行就是请求行,每一行以 /r/n结尾;
请求行包含三个部分, 请求方式(GET,POST,PUT,DELETE...) ,请求路径 , 采用的协议/版本(http)
2~4为请求头,可以包含很多,结构是 key:val
第6行是请求主体信息,请求头和请求主体要空一行
基础认识到这里差不多了,下一篇再来分析更多有用的头信息;
HTTP协议 - 基础认识的更多相关文章
- TCP/IP协议基础(转)
转自 http://www.chinaunix.net 作者:Bernardus160 发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...
- 小白日记27:kali渗透测试之Web渗透-Http协议基础,WEB
Http协议基础 Web技术发展[http://www.cnblogs.com/ProgrammerGE/articles/1824657.html] 静态WEB[网页] 动态WEB 属于一种应用程序 ...
- HTTP协议基础与实验
一. HTTP协议(Hypetext Transfer Protoacal,超文本传输协议) HTTP协议规定了Web基本的运作过程,以及Web服务器之间的通信细节. Http协议采用客户端/服务器端 ...
- udp协议基础(转自疯狂java讲义)
第17章 网络编程 17.4 基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...
- UART串口协议基础1
Louis kaly.liu@163.com 串口协议基础 1 串口概述 串口由收发器组成.发送器是通过TxD引脚发送串行数据,接收器是通过RxD引脚接收串行数据. 发送器和接收器都利用了一个移位寄存 ...
- 接口测试培训:HTTP协议基础
接口测试培训:HTTP协议基础 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展. ...
- 【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识
第41章 HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...
- 【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识
第35章 FTP文件传输协议基础知识 本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) ...
- 【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识
第33章 SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作. (本 ...
- 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识
第25章 DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...
随机推荐
- open-falcon之使用mail-provider发邮件(支持smtp SSL协议)
一.首先确定go语言安装环境配置好 1.进入官网下载源码包 https://golang.org/dl/ 2.解压缩,配置环境变量 在/etc/profile最后加上export PATH=$PATH ...
- k8s 节点的 NodeAffinity 使用
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 kind: Deployment metadata: name: vi ...
- LeetCode11:Container With Most Water
public int MaxArea(int[] height) { ; ; ; while(start<end) { max=Math.Max(max,Math.Min(height[star ...
- k8s
https://www.cnblogs.com/sheng-jie/p/10591794.html
- 开源纯C#工控网关+组态软件(二)工控网关的实现
一. 工控网关是什么 网关是物联网和工控系统的核心组件.网关起的是承上启下的作用.上即上位机,电脑/触屏监控系统.MES这些:下即下位机,包括PLC.传感器.嵌入式芯片等. 不同厂家的下位机,往往 ...
- itoa()函数和atoi()函数详解
C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. 以下是用itoa()函数将整数转换为字符串的一个例子:# include <stdio.h># i ...
- Array Division CodeForces - 808D (构造+实现)
Vasya has an array a consisting of positive integer numbers. Vasya wants to divide this array into t ...
- Vicious Keyboard CodeForces - 801A (暴力+模拟)
题目链接 题意: 给定一个字符串,最多更改一个字符,问最多可以有多少个“VK”子串? 思路: 由于数据量很小,不妨尝试暴力写.首先算出不更改任何字符的情况下有多个VK字串,然后尝试每一次更改一个位置的 ...
- 漫谈数组去重复方法(亮点是ES6的新API)
方法1: 利用遍历的思想来进行. <!DOCTYPE html><html lang="en"><head> <meta charset= ...
- 使用VBA进行JS加密的反混淆,还原JS代码。
本文地址:http://www.cnblogs.com/Charltsing/p/JSEval.html 联系QQ:564955427 类似下面的代码是登陆 全国企业信用信息公示系统(安徽)(网址:h ...