HTTP通信基础
1. HTTP通信流程:
1)输入www.baidu.com
2)解析成IP地址:192.168.0.1
3)浏览器通过该IP访问web服务器获取web资源
4)再返回给客户端
5)最后呈现在用户面前
2. HTTP常用的6种请求类型:
1)OPTIONS:返回服务器所支持的HTTP请求方法。
2)HEAD:与GET请求相一致的响应,但只返回头部信息,响应体将不会被返回。
3)GET:向特定的资源发出请求。
4)POST:向指定资源提交数据进行处理请求。数据被包含在请求体中。
5)PUT:向指定资源位置上传其最新内容。
6)DELETE:请求服务器删除指定资源。
3. 常见的请求头:(重点记忆以下请求头)
● Accept
○ 指定客户端能够接收的内容类型
○ Accept: text/plain, text/html
● Accept-Charset
○ 浏览器可以接受的字符编码集
○ Accept-Charset: iso-8859-5
● Accept-Encoding
○ 指定浏览器可以支持的web服务器返回内容压缩编码类型
○ Accept-Encoding: compress, gzip
● Accept-Language
○ 浏览器可接受的语言
○ Accept-Language: en,zh
● Cookie
○ HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器
○ Cookie: role=admin;ssid=1
● Range
○ 只请求实体的一部分,指定范围
○ Range: bytes=500-999
● Referer
○ 先前网页的地址,当前请求网页紧随其后,即来路
○ Referer: http://www.zcmhi.com/archives/71.html
● User-Agent
○ User-Agent的内容包含发出请求的用户信息
○ User-Agent: Mozilla/5.0 (Linux; X11)
4. GET和POST区别
1:URL可见性
i:Get传参方式是通过地址栏URL传递,是可以直接看到get传递的参数,get把请求的数据在URL后通过?连接,通过&进行参数分割。
ii:Post传参方式参数URL不可见,post将从参数存放在HTTP的包体内。
2:传输数据大小
i:Get传递数据是通过URL进行传递,对传递的数据长度是受到URL大小的限制,URL最大长度是2048个字符。
ii:Post没有长度限制。
3:后退页面
Get后退不会有影响,Post后退会重新进行提交
4:缓存
i:Get 请求可以被缓存,请求的记录会留在历史记录中。
ii:Post 不可以被缓存,请求不会留在历史记录。
5:编码方式
i:Get 请求只URL编码。
ii:Post 支持多种编码方式。
6:字符类型
i:Get 只支持ASCII字符。
ii:Post 没有字符类型限制。
5. 一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。
6. HTTP响应报文:响应行、响应头、响应体
7.HTTP响应码:
1xx(临时响应)、2xx(成功)、3xx(重定向)、4xx(请求错误)、5xx(服务器错误)
(重点记忆100、101 、200、201、301、302 、 400、401、403、404 、405 、500、501、)
8. HTTPS 默认工作在 TCP 协议443端口
9.HTTP常用的6种协议:
OPTIONS:返回服务器所支持的HTTP请求方法。
HEAD:与GET请求相一致的响应,但只返回头部信息,响应体将不会被返回。
GET:向特定的资源发出请求。
POST:向指定资源提交数据进行处理请求。数据被包含在请求体中。
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除指定资源。
10.HTTP 与 HTTPS 区别:
- HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
- 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
- HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
- http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
- HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
11.HTTP请求响应过程:
1)域名解析、 2)发起TCP3次握手、 3)建立TCP连接后发起HTTP请求、 4)服务器端响应http请求,浏览器得到html代码、 5)浏览器解析html代码,并请求html代码中的资源、 6)浏览器对页面进行渲染呈现给用户
HTTP通信基础的更多相关文章
- PHP进程通信基础——信号
PHP进程通信基础--信号 使用信号通信.可以使用kill -l 来查看当前系统的信号类型. 每个信号所代表的的详细含义,请查看我的这篇博客:http://www.cnblogs.com/roverl ...
- PHP进程通信基础——信号量+共享内存通信
PHP进程通信基础--信号量+共享内存通信 由于进程之间谁先执行并不确定,这取决于内核的进程调度算法,其中比较复杂.由此有可能多进程在相同的时间内同时访问共享内存,从而造成不可预料的错误.信号量这个名 ...
- PHP进程通信基础——shmop 、sem系列函数使用
PHP进程通信基础--shmop .sem系列函数使用 进程通信的原理就是在系统中开辟出一个共享区域,不管是管道也好,还是共享内存,都是这个原理.如果心中有了这个概念,就会很方便去理解代码.由于官网上 ...
- IP通信基础的第一个星期
IP通信基础不仅是很多专业课程的基础,同时学好它,在以后很多工作上都可以运用到,有网络工程师.通信工程师等等,当然,有些证书也会涉及到IP通信基础,有网络中级高级 CCNA等等. 那么,学好IP通信基 ...
- IP通信基础学习第一周
在IP方向上,IP通信基础是学习其他诸如:数字程教控交换技术与应用.IPV6技术与应用.SDH传输技术与应用等课程的基础. 学习IP通信基础,对学生而言至少可以拿学分,不仅有利于以后的学习,还有机会从 ...
- LABVIEW串口通信基础
写这一篇串口通信基础的契机是最近刚刚完成一个温箱的仪器控制程序,LABVIEW通过串口与温箱单片机通讯,我打算将过程中遇到的一些问题和收获列在这里方便有需求的网友比对.寻找答案. 学LABVIEW时间 ...
- 第2章 2.n物理层--数据通信基础知识总结
数据通信基础知识总结
- Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)
Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: ...
- Java学习之Hessian通信基础
一.首先先说Hessian是什么? Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简 ...
- Android 学习笔记之网络通信基础+WebView....
PS:加快学习进度...下周一完成Android网络通信...然后正式进入实战... 学习内容: 1.Android中Http基础... 2.Android中的Socket基础... 3.Androi ...
随机推荐
- fabric学习笔记2
fabric学习笔记2 20201303张奕博 2023.1.10 Fabric云服务器搭建 参考视频:视频链接:https://www.bilibili.com/video/BV1gV4y1M7q3 ...
- Docker安装 Redis Stack(开发适配-提供 Redis Stack 服务器和RedisInsight可视化) (6.2.4-v2版本)
一.使用docker安装(开发适配-提供 Redis Stack 服务器和RedisInsight) (6.2.4-v2版本) 简介 安装命令根据实际部署情况调整 版本地址:官方镜像主页 | 发布版T ...
- Mac10.13-10.15 下玩星际争霸1.16
星际争霸DMG 存储在城通网盘,下载后挂载,复制到 应用程序 里就可以玩了 1, ctfile://xturlDG9QOlg_V29WOwI8UzEKZQdjUWEOOFJ7VCEHYFIxBzlTY ...
- CSS3-background-image渐变
实现效果如下: 观察发现鼠标放上去的时候出现了三个变化,渐变背景,文字位移和图片放大. 渐变背景:background-image: linear-gradient(transparent,rgba( ...
- Docker部署Nastool(含jellyfin、transmission)
先弄清楚原理 首先从[资源搜索]或者[推荐栏目]寻找自己想看的电影,执行订阅或者搜索资源启动下载,下载电影存放在downloads/mov目录下,[媒体整理]就是将mov子目录下电影文件复制到down ...
- redis分布式锁实现,setnx,nodejs版本
const redis = require('ioredis'); const clienId = Math.random() * 100; //模拟客户端Id const lockKey = 'te ...
- 波利亚(George Pólya)的一些链接
忽然决定还是要写个博客. 第一篇献给波利亚. 他最有名的应该是<怎样解题>(How to solve it)这本书了.我认为只要读了前面几页就能提高普通人解决问题的能力,真的应该列为中学必 ...
- CH32F103C8T6的USB开发(一)
一.背景 项目用到单片机采集模拟量数据,原先使用USB转串口,速度嫌慢,还要转串口芯片,电脑还要安装驱动,现更改为采用USB的HID类来传输. 二.单片机选型 STM32F103的USB接口简单易用, ...
- SpringBoot(概述、起步依赖原理分析、SpringBoot配置(配置文件分类、YAML))
SpringBoot概述 Spring Boot 是由 Pivotal 团队提供用来简化 Spring 的搭建和开发过程的全新框架.随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手 ...
- 3月1日Android开学学习
Android开发的简单控件 1.文本显示 2.视图基础 3.常用布局 4.按钮触控 5.图像显示 文本显示 (1)设置文本内容 1.在XML文件中通过属性Android:text设置文本 Andro ...