【网络】解释Http协议,URL,Http的格式。
一、HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)
- 协议就是计算机网络中的一种约定。
- 所以http协议就是服务器和客户端/浏览器在应用层所定义的一种约定。
- 是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
- HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
http协议格式
1.典型的请求数据包格式
GET /mix/76.html?name=kelvin&password=123456 HTTP/1.1
Host: www.fishbay.cn
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6username=hgtz2222&password=22222222
- 首行:[方法]+[url]+[版本]
- http有很多的方法,最常用的方法就是get和post方法。两个方法都是将数据从客户端提交到服务端。get和post的区别。
get | post |
---|---|
get方法请求的参数是放在URL里的 | POST请求参数是放在请求body里的 |
GET请求的URL传参有长度限制 | 而POST请求没有长度限制 |
GET请求的参数只能是ASCII码,所以中文需要URL编码 | 而POST请求传参没有这个限制 |
- URL:下面详细解释
- 版本:就是协议所使用的版本
请求头Header:从请求行的下一行开始到空行,包含请求的一些属性值。
都是用冒号分割的键值对,每组属性之间用 \n 分割,遇到空行表示请求头(Header)结束。请求体body:空行后面的内容都是请求体(Body),允许为空字符串。如果存在,在Header中会有一个属性Content-length属性来标识Body的长度。
2.典型的响应数据报格式
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Feb 2017 09:13:59 GMT
Content-Type: text/plain;charset=UTF-8
Vary: Accept-Encoding
Cache-Control: no-store
Pragrma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Content-Encoding: gzip
Transfer-Encoding: chunked
Proxy-Connection: Keep-alive{"code":200,"notice":0,"follow":0,"forward":0,"msg":0,"comment":0,"pushMsg"}
- 首行:[版本号]+[状态码]+[状态码解释]
状态码 | 类别 | 原因短语 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求(客户端的错误) |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错(服务器的错误) |
状态码是给计算机是别的,状态码解释是给用户看的.
- 响应头Header:请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
- 响应体body:基本和请求体一样,注意如果服务器返回了一个html页面,那么html页面的内容就在响应体中.
常见的Header
属性名 | 作用 |
---|---|
Content-Type | 数据类型(text/html等) |
Content-Length | Body的长度 |
Host | 客户端告知服务器,所请求的资源是在哪个主机的哪个端口上 |
User-Agent | 声明用户的操作系统和浏览器版本信息 |
referer | 当前页面是从哪个页面跳转过来的 |
location | 搭配3XX状态码使用,告诉客户端接下来要去哪里访问 |
Cookie | 用于在客户端存储少量信息,通常用于实现会话(session)的功能。比如:短时间免登陆 |
Http如何分离数据和报头
- 利用空行,可以分离数据和报头,报头中的Content-Length属性值包含数据的总长度
二、认识url
全称是:UniformResourceLocator(统一资源定位符)
我们常说的“网址”,其实就是url。以下面的一种URL为例:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
从上面的URL可以看出,一个完整的URL包括以下几个部分:
- 协议部分:URL的第一个字符串代表的是使用的何中协议,在internet中可以使用多种协议,比如HTTP,FTP和HTTPS等等。本例中使用的是Http。(Http和Https协议的区别就是后者给所传输的数据加密了)
- 域名部分。用“//”作为协议与域名的分隔符,一个URL也可以使用IP地址作为这一部分的内容。
- 端口部分。用“:”作为端口与域名部分的分隔符。端口号就是指定该数据应该被哪一个应用程序所接收。端口号在URL中不是必须填写的,如果不写就选择默认端口号。
- 虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”
- 文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
- 锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分
- 参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
三、http工作过程
1. 输入URL。
- 不管是链接还是地址栏的输入,情况都是一样的。http协议已经规定了URL的格式,通过http协议中的域名或IP找到服务器。
2. 找到服务器
- 会有http的请求发送过来,告诉服务器我求你做什么?http协议规定了发送请求的格式,这个格式有三部分组成请求行、请求头、请求体。
3. 处理请求
- 请求信息发送至服务器以后,服务器会获取传递过来的相关信息进行后端程序的处理。一般通过request.querystring获取URL传递过来的指,通过request.form获取POST传递过来的值,当然,也是可以获取到所有的其他请求过来的信息,如浏览器信息、cookie信息、操作系统信息等。获取相关的数据以后,服务器就会根据程序进行处理。
4. 响应请求
- 处理完成以后,服务器会做出响应,向浏览器输出相关信息。http对响应的格式也做出了规定,响应的信息主要包括响应行、响应头、响应体。
【网络】解释Http协议,URL,Http的格式。相关推荐
- Linux网络:HTTP协议 | URL | 协议格式 | HTTP方法 | HTTP状态码 | Cookie与Session
文章目录 网络计算器 服务端 客户端 HTTP协议 认识URL 协议方案名 登录信息 服务器地址.端口号 带有层次的文件路径 查询字符串 片段标识符 urlencode和urldecode HTTP协 ...
- 网络七层协议地图,报文格式一览无遗。绝对是干货,值得收藏
从事网络工作的小伙伴们,在排查网络故障时,往往需要抓包,分析问题.所以,要对每一层的报文格式有一定的了解才行.但是,每一层报文协议众多,全部背下来是不可能的.只需要用到的再去查. 今天给大家分享一个网 ...
- web网络和http协议(了解域名和网页,制作第一个网页,了解http协议,流程和请求报文格式)
文章目录 web网络和http协议 了解域名 早期使用HOST文件解析域名 现在DNS(Domain Name system 域名系统) 域名的概述 域名空间结构 域名介绍 域名注册 域名注册步骤 网 ...
- URL定义、格式、常见协议
什么是URL? URL的全称是Uniform Resource Locator(统一资源定位符) URL就是资源的地址.位置,互联网上的每个资源都有一个唯一的URL 通过1个URL,能找到互联网上唯一 ...
- 网络协议分层及报文格式大全
推荐一个查看网络协议分层及报文格式的网站,非常清晰! http://www.023wg.com/message/message/cd_feature_cover.html
- 具体解释http 协议
HTTP协议的主要特点可概括例如以下: 1.支持客户/server模式. 2.简单高速:客户向server请求服务时,仅仅需传送请求方法和路径.请求方法经常使用的有GET.HEAD.POST.每种方法 ...
- HTTP协议——URL
URL 是一种 URI,它标识一个互联网资源,并指定对其进行操作或获取该资源的方法.可能通过对主要访问手段的描述,也可能通过网络"位置"进行标识. 大部分URL遵循一种标准格式,该 ...
- 02.iOS开发网络篇—HTTP协议
iOS开发网络篇-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...
- 网络编程——常用协议解析
** 1.网络基础知识 ** 1.1> 什么是OSI模型 OSI 模型(Open System Interconnection model)是一个由国际标准化组织?提出的概念模型,试图?供一个使 ...
- Linux网络-UDP/TCP协议详解
Linux网络-UDP/TCP协议详解 零.前言 一.UDP协议 二.TCP协议 1.应答机制 2.序号机制 3.超时重传机制 4.连接管理机制 三次握手 四次挥手 5.理解CLOSE_WAIT状态 ...
最新文章
- 单元测试mock之mockito使用
- 存储过程里output的使用总结
- python写出的程序如何给别人使用-涨姿势!这些小技巧让小白也可以写出更优雅的Python代码!...
- list在codeblocks和vs2013中编译提示不同
- 什么样的数据集可以被分成两类?
- 判断均匀平面波的极化形式_化学选修3丨分子极性如何判断?四步就能搞定!...
- Matlab中下标、斜体及希腊字母的使用方法
- 触摸屏通常接在微型计算机,计算机应用基础习题答案.doc
- 文件解析漏洞总结-Nginx
- 【瞎搞】 Codeforces Round 276 DIV 2 C.Bits
- android 队列上传图片,话说android端七牛图片上传
- mysql中error 1786_mysql错误处理之ERROR1786(HY000)_MySQL
- PL/SQL Developer 8.0.2.1505 简体中文汉化版下载,带注册机-永久注册。
- 四级英语作文大学生使用计算机,大学生四级英语作文范文
- 递归算法经典实例python-python实现十大经典算法
- 阿里云OCR:(二)银行卡号识别
- Opencv—利用findContours函数找圆环,并标出(简单层级)
- uniapp AES加密解密
- 世界著名黑客的安全建议
- 以太坊教程-使用 remix-ide 开发以太坊智能合约
热门文章
- vue开发抽取组件方式思路
- 基于jsp+mysql+ssm妇女联合会管理系统-计算机毕业设计
- 基本排序算法 【转载】
- 2.3 放大电路的分析方法
- Java实现自动输入账号密码登陆软件
- 简单实现账号密码登录(写死了)
- 一切照旧... ...
- 【Niagara Vykon N4 】物联网学习 03照明控制及照明时间表
- 电磁兼容设计中无法忽视的高频效应
- [Web前端] 子元素设置高度为100%, 却没有与父元素对齐高度.